我有一个字符串,我想使用std :: stod转换为double。但是,std :: stod的输出并不是我所期望的。例如,如果我的字符串是6.1,则std :: stod的输出是6.0999999999999996。
我能做些什么来使它成为std :: stod返回6.1或将6.099 ... 6转换为6.1?
答案 0 :(得分:1)
不。 std::stod
返回double
,在大多数实现中,double
是二进制浮点类型。
这将无法准确表示6.1。
如果您需要6.1,请考虑使用具有适当缩放系数的整数类型,或使用第三方库中的十进制类型。