浮動小数点数の基数の後の小数点以下の桁数を数えたいのですが。実数がのように2進法で表現されていない場合、問題は明らかに発生し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();
}