std :: stod没有给出确切的数字输出

时间:2017-07-05 08:44:00

标签: c++ string double

我有一个字符串,我想使用std :: stod转换为double。但是,std :: stod的输出并不是我所期望的。例如,如果我的字符串是6.1,则std :: stod的输出是6.0999999999999996。

我能做些什么来使它成为std :: stod返回6.1或将6.099 ... 6转换为6.1?

1 个答案:

答案 0 :(得分:1)

不。 std::stod返回double,在大多数实现中,double是二进制浮点类型。

这将无法准确表示6.1。

如果您需要6.1,请考虑使用具有适当缩放系数的整数类型,或使用第三方库中的十进制类型。

请参阅Is floating point math broken?