我正在使用 while 循环来计算输入中的位数。
所以我的输入是 1.525
length = 0;
num = num - int(num);
while ( num >= .0001 ) {
num = num * 10;
length = length + 1;
num = num - int(num); }
当我做
cout << "\n\nLength: " << length << "\n";
我得到的答案是 51,而其他数字给我的答案是 49 或明显错误的东西。 这是 C++ 的工作方式还是我的错误。谢谢。
最佳答案
double
和 float
不能始终准确保存您尝试存储在其中的值,这不是它们的工作方式。在许多情况下,它们会存储一个近似值,该值通常可以四舍五入为您最初打算存储在那里的值,但不完全是。这就是您获得这些结果的原因。
关于c++ - 计算双C++中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023641/