我想计算浮点数的小数点后的小数位数。当实数在二进制系统中没有表示时,问题显然会出现,例如3.5689113
.
我想知道 - 例如,如果有人在源代码中写这个实数 - 是否有可能得到数字 7,即小数点后的位数
例如,以下天真的代码不起作用:
int main()
{
double num = 3.5689113;
int count = 0;
num = abs(num);
num = num - int(num);
while ( abs(num) >
0.0000001 )
{
num = num * 10;
count = count + 1;
num = num - int(num);
}
std::cout << count; //48
std::cin.ignore();
}