小编use*_*148的帖子

浮点运算的结果不同

我有一个小问题,我有一些代码来计算一组给定数据的平均值,我是从几台不同的计算机(有些用linux,有些有windows,有些32位,有些是64位)来做的,但是当我观察数据库结果应该相等的一些值略有不同.

这对我的程序没有任何影响,但我想知道为什么会这样,我的印象是使用相同单词lenght的浮点运算应该产生相同的结果(我显然是错的).

这是我编写的一个小示例代码,用于检查:

public class Test{
    public static void main(String... args){
        double counter = 0, value = 1./10;

        for (int i = 0; i < 1000000; i++){
            counter += value;
        }

        System.out.println(counter);
    }
}
Run Code Online (Sandbox Code Playgroud)

它基本上计算1000000/10,我知道结果不准确,但在某些pcs中它会打印一个略小于100000的数字,而在其他情况下它打印的数字略大一些.

java

1
推荐指数
1
解决办法
129
查看次数

标签 统计

java ×1