Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有人可以向我解释发生了什么吗?
double dbl = stdtod("9999999999999999", NULL);
我得到了价值:9999999999999998 而不是:9999999999999999
9999999999999998
9999999999999999
我不明白为什么会发生这种情况,在 MSDN 中,指定最大双数是1.7976931348623158E+308,所以它不能是溢出。
1.7976931348623158E+308
谢谢
它不是溢出,而是浮点如何工作的问题。在溢出之前很久就超过了有限的有效数字。这已经被链接了很多次,但看看这个