如何解决整数乘以浮点数给出奇怪的结果
当我意识到控制台中有一些奇怪的数字时,我正在编写这段代码来获取最多两位小数的随机浮点数。
public void PrintNumbers()
{
for(int i = 0; i < 30; i++)
{
int num = Random.Range(1,200);
float x = num * 0.1f;
print(x);
}
}
然后我意识到这个数字总是 8.900001 所以我写了这段代码:
public void PrintWeirdNumber()
{
float x = 89 * 0.1f;
print(x);
}
此方法总是打印 8.900001。我已经找到了一个简单的解决方案,就是将整数除以 10.0f 而不是乘以 0.1f。
public void PrintNumber()
{
float x = 89 / 10.0f;
print(x);
}
这将始终打印 8.9
为什么会这样?我只是不太了解浮点数,无法了解这背后的原因。有什么帮助吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。