【发布时间】:2018-05-30 15:40:48
【问题描述】:
我已经搜索了几个小时,但找不到完成以下任务的简单方法。
Value 1 = 0.00531
Value 2 = 0.051959
Value 3 = 0.0067123
我想将每个值增加其最小的小数点(但是,该数字必须保持与它开始时的精确小数点数,并且小数点数随每个值而变化,因此我的麻烦)。
Value 1 should be: 0.00532
Value 2 should be: 0.051960
Value 3 should be: 0.0067124
有谁知道在仍然可以处理任意小数的函数中完成上述操作的简单方法?
谢谢。
【问题讨论】:
-
浮点不是在内部以十进制表示,而是以二进制表示。因此,
0.1例如 not 是可表示的浮点数。它近似于0.099999...ish 或0.1000...ish。所以它会非常不稳定。 -
如果你真的想要这个,那么你应该切换到非浮点表示(例如,一个整数和一个给出小数位数的数字)。
-
@TomKarzes 的方法有效,但请注意,仅仅因为您看到的十进制表示是
0.00532,实际上可能有 更多 个十进制数字而不是您看到的,所以您可能如果您没有看到整个表示,则会得到与预期不同的结果。 -
.1 + .2 == 0.30000000000000004。这里“真实”的最后一位数字是什么?