当前位置:  开发笔记 > 编程语言 > 正文

如何修复浮点不精确的输出?

如何解决《如何修复浮点不精确的输出?》经验,为你挑选了1个好方法。

我正在做一些浮动操作并最终得到以下数字:

-0.5
-0.4
-0.3000000000000000004
-0.2000000000000000004
-0.1000000000000000003
1.10E-16
0.1
0.2
0.30000000000000000004
0.4
0.5

算法如下:

var inc:Number = nextMultiple(min, stepSize);
trace(String(inc));

private function nextMultiple(x:Number, y:Number) {
    return Math.ceil(x/y)*y;
}

我理解浮点数不能总是在一个字节中准确表示.例如1/3.我也知道我的步数为0.1.如果我有步骤,我怎么能得到一个正确的输出?

奇怪的是,这是我第一次遇到这种类型的问题.也许我玩不够漂浮.



1> Bill the Liz..:

与语言无关的解决方案是将您的数字存储为整数步数,前提是您知道步长而不是浮点数.

一个非语言不可知的解决方案是找出你的语言printf的实现.

printf ("float: %.1f\n", number);

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有