Wiki Double-precision floating-point format说:
这给出了15-17个有效小数位数精度 . 如果具有最多15位有效数字的十进制字符串转换为IEEE 754双精度表示,然后转换回具有相同有效位数的字符串,则最终字符串应与原始字符串匹配 . 如果将IEEE 754双精度转换为具有至少17位有效数字的十进制字符串,然后再转换回双精度数,则最终数字必须与原始数字匹配 .
任何人都可以给我一些例子来说明转换如何与原始版本匹配,在哪种情况下它不会?
Wiki Double-precision floating-point format说:
这给出了15-17个有效小数位数精度 . 如果具有最多15位有效数字的十进制字符串转换为IEEE 754双精度表示,然后转换回具有相同有效位数的字符串,则最终字符串应与原始字符串匹配 . 如果将IEEE 754双精度转换为具有至少17位有效数字的十进制字符串,然后再转换回双精度数,则最终数字必须与原始数字匹配 .
任何人都可以给我一些例子来说明转换如何与原始版本匹配,在哪种情况下它不会?
1 回答
有15位有效数字,从字符串到double和back ...
注意:对于大约15个有效数字的初始输入字符串,上面的代码可能会输出不同的最终字符串 . 这里's a program that attempts to find a 15 digit string input for which the value isn' t通过转换为
double
保留,但是all values pass for GCC on coliru.stackedcrooked.com . 对于不同范围内的其他值,这不会失败 .有17位有效数字,从double到string和back ...
这应该永远不会从文本表示中恢复相同的
double
值 .