そのような文字列があるとします(実際には、この値を別の場所から取得しています)
std::string val = "2.31";
今、私はこのようなことをしています
float f = atof(val);
f は 2.31xxxxxxxxxxx のようなものになりました
小数点以下2桁を取得する方法について何か提案はありますか? f が 2.3100000 のように見えるように...
そのような文字列があるとします(実際には、この値を別の場所から取得しています)
std::string val = "2.31";
今、私はこのようなことをしています
float f = atof(val);
f は 2.31xxxxxxxxxxx のようなものになりました
小数点以下2桁を取得する方法について何か提案はありますか? f が 2.3100000 のように見えるように...
float のすべての入力に対して正確な値を取得することはできません。これは、コンピューターでの浮動小数点の表現によるものです。==
それが、フロートでできない理由でもあります。精度が必要な場合は、他の形式 (BCD ?) を使用する必要があります。
2 進浮動小数点は、小数の 10 進数値を正確に表すことができません。float
ほとんどの場合、 a に格納される値は近似値になります。ただし、印刷に適切なアルゴリズムを使用すると、使用されている桁数が 1 桁以下の場合、元の桁数が復元std::numeric_limits<float>::digits10
されます。