多个定点十进制数映射到相同的double值.例如:
double d1 = 132.24;
double d2 = 132.24000000000001;
Run Code Online (Sandbox Code Playgroud)
d1和d2具有相同的二进制值.
当使用具有14位精度的ostream将d1(或d2,它们具有相同的值)转换为字符串时,它将转换为:132.24000000000001.
是否存在支持从double-> string转换的方法/库,其中字符串是具有最小非零数字的定点值并且是有效转换?即在这种情况下,将d1转换为字符串将返回132.24000000000000(以14位精度显示)
该库 https://github.com/floitschG/double-conversion 提供了带有 SHORTEST 选项的 DoubleToStringConverter::DoubleToAscii 方法:“SHORTEST:生成仍满足内部身份要求的最少数字量。”
非常感谢 iwillnotexist-idonotexist 为我指明了正确的方向。