【发布时间】:2013-04-01 21:35:44
【问题描述】:
我正在设计一个收银机,我必须在其中比较 2 个浮点值,并且每次比较时都会出错。即因为我无法将金额的差异四舍五入到小数点后 2 位并将其与价值观。
例如。如果客户支付的金额是 60.36 并且发出的账单是 30.24 出来的差异是 30.120001 。 我什至尝试使用 floor 函数将其四舍五入为两位小数: 地板f(diff*100+.5)/100;但它不起作用。
我应该如何四舍五入十进制数字并在设计收银机时使用它们?
【问题讨论】:
-
你不应该比较浮点值。
-
错了,他不应该使用浮点数来表示货币价值。除非您使用
==,否则比较它们是可以的。 -
这就是为什么(不使用浮点数),stackoverflow.com/questions/3730019/…
标签: c floating-point floating-point-precision