我想知道如何将像"1234.123456"这样的字符串转换为doublefloat
我需要至少3位数的精度(即小数点后3位数,而不考虑该点前的位数)。

最佳答案

确切的值1234.123456在任何通常的情况下都无法表示
机器浮点格式。您所能做的就是选择多少
您需要的准确性,并使用它。 (在大多数现代计算机上,double
16位精度。但这仍不代表所有16位数字
值完全可以表示。)

至于转换,只需执行转换任何类型的操作即可:

std::istringstream s( "1234.123456" );
double d;
s >> d;


并阅读
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html。它会
说明安全使用所需的基本知识
机器浮点数。

07-25 23:32
查看更多