这可能是一个愚蠢的问题,但我遇到了一个奇怪的问题。
我发现这行代码
cout << long((15.25-14.74)*100) << endl
将输出 50。而这一行
cout << long(0.51*100) << endl
将输出 51。
我的问题是为什么它们不同,为什么第一个输出 50 而不是 51?
最佳答案
在浮点运算中,实数有时可能不是您所期望的,因为精度是有限的。在您的情况下,0.51
实际上是0.50999999
。
关于c++ - 类型转换 C++ 的行为方式很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875170/