Math.Round函数四舍五入的问题

今天客户跑过来跟我说,我们程序里面计算的价格不对,我检查了一下,发现价格是经过折算后的价格,结果是可能小数位较多,而单据上只能打印两位价格,所以就对价格调用Math.Round(price,2)函数进行四舍五入。

而出现问题的单价就是1.805,函数Math.Round(1.085,2)的返回值却是1.80,按照四舍五入的原则,结果应该是1.81才对。

在一番google之后,发现微软是对了,是我们错了。:(

原来四舍五入也有个国际惯例,叫奇进偶舍,意思是当舍入位前面一位是奇数时,就进,为偶数时,就舍,这也是体现公平性的原理。

可是国际惯例往往在国内很多企业行不通,为了应付他们的要求,采用Math.Round(price,2,MidpointRounding.AwayFromZero)就可以了。

转载于:https://www.cnblogs.com/yiway/archive/2007/02/08/644689.html

Math.round函数是Java中的一个数学函数,用于对一个浮点数进行四舍五入取整操作。根据引用\[2\]的解释,当小数点后第一位为5时,正数会向上取整,负数会向下取整。当小数点后第一位小于5时,正数和负数都会向下取整。当小数点后第一位大于5时,正数会向上取整,负数会向下取整。\[2\] 在引用\[1\]中的示例代码中,Math.round函数被用来对不同的浮点数进行取整操作,并将结果打印出来。例如,Math.round(11.1)的结果是11,Math.round(11.5)的结果是12,Math.round(-11.1)的结果是-11,Math.round(-11.5)的结果是-11。\[1\] 总结来说,Math.round函数可以用来对浮点数进行四舍五入取整操作,根据小数点后第一位的数值来确定取整的方向。\[3\] #### 引用[.reference_title] - *1* [Math.round()函数](https://blog.csdn.net/VirusLL/article/details/71981680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Math.round()方法](https://blog.csdn.net/zhoushumin157016/article/details/51984436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值