c++ - 计算双C++中的位数

标签 c++

我正在使用 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++ 的工作方式还是我的错误。谢谢。

最佳答案

doublefloat 不能始终准确保存您尝试存储在其中的值,这不是它们的工作方式。在许多情况下,它们会存储一个近似值,该值通常可以四舍五入为您最初打算存储在那里的值,但不完全是。这就是您获得这些结果的原因。

关于c++ - 计算双C++中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023641/

相关文章:

android - native 崩溃调用堆栈中的地址和偏移量到底是什么?

c++ - opengl 3.1 纹理未加载

c++ - std::map 如何提供常量 size() 操作?

c++ - QueryPerformanceCounter函数在在线判断中的使用

c++ - 在 C 中将 double 转换为整数时处理溢出

c++ - 除以非零值仍然可以创建一个南/无穷大

c# - 将 Borland C++ 迁移到 C#

c++ - 在 cygwin 上找不到 tchar.h

c++ - 缩短运行时复杂度 (c++)

c++ - 如何找出变量的类型?