环绕的MySQL 0.5并非总是会上升

问题描述 投票:-1回答:2

https://i.stack.imgur.com/pxEQW.png

    SELECT 
      retur_product_detail.jum_r, 
      ROUND(ROUND((jum_r * 1.1), 2), 2) as q_gross,
        ROUND(jum_r * 1.1) as gross,
        ROUND((jum_r * 10 / 100), 2) as q_ppn,
        ROUND(jum_r * 10 / 100) as ppn
    FROM retur_product_detail
    LEFT JOIN retur_product ON 
      retur_product.no_retur = retur_product_detail.no_retur AND
      retur_product.distributor_code = retur_product_detail.distributor_code
    WHERE retur_product.sales_id = '537' AND 
      retur_product.tgl_retur >= '2019-12-30' AND 
      retur_product.tgl_retur <= '2020-01-26' AND 
      retur_product_detail.gross <>  retur_product_detail.jum_inv

我根据图片有数据。为什么四舍五入不总是增加……?我的查询出了什么问题?谢谢

mysql sql database rounding
2个回答
0
投票
尝试使用CEILING()而不是ROUND()。

0
投票
对于精确数字(例如DECIMAL),MySQL将0.5舍入到下一个最大整数。对于不精确的数字(例如FLOAT),MySQL依靠底层C库的舍入,这通常是“四舍五入”。 Doc ref here
© www.soinside.com 2019 - 2024. All rights reserved.