标签: strtod
double dbl = stdtod("9999999999999999", NULL);
我得到了价值:9999999999999998 而不是:9999999999999999
9999999999999998
9999999999999999
我不明白为什么会发生这种情况,在MSDN中,指定最大双数是1.7976931348623158E+308,所以它不能是溢出。
1.7976931348623158E+308
由于
答案 0 :(得分:2)
浮点运算的问题不是溢出。在溢出之前很久就会超过有效数字的有限nubmer。这已被多次联系,但请查看this