我理解 random.Float() 带回一个介于 0.0 到 0.999 之间的浮点数...
但出于未知原因,几乎相同的代码会返回 2 个不同的答案。
我想了解为什么 t1 可以随机 1.0 而 t2 不能。
我试图检查一个类似的问题,但找不到任何类似的东西
Random rand = new Random();
for (int i = 0; i < 1000000000; i++) {
float t1 = 0.9f + rand.nextFloat() * 0.1f;
float t2 = 0.1f + rand.nextFloat() * 0.9f;
if (t1 == 1.0f) {
System.out.println("t1 " + t1);
}
if (t2 == 1.0f) {
System.out.println("t2 " + t2);
}
}
没有错误消息我只是不明白为什么 t1 有时会带回 1.0 号而 t2 却没有。
编辑:t1 生成最大值 0.999... *0.1 即 0.0999... + 0.9 = 0.9999... t2 生成最大值 0.999... *0.9 即 0.8999... + 0.1 = 0.9999... 两者都应该是一样的不?
慕村9548890
相关分类