從我在網(wǎng)上能找到的所有內(nèi)容來看,JavaScript 據(jù)稱使用 IEEE 754 doubles 作為其數(shù)字,但我發(fā)現(xiàn)數(shù)字可以在 C doubles 中工作,但不能在 JavaScript 中工作。例如,#include <stdio.h>int main(){ double x = 131621703842267136.; printf("%lf\n", x);}打印131621703842267136.000000注意:在問題的早期版本中,我為 C 復(fù)制了錯誤的數(shù)字,但在 JavaScript 中console.log(131621703842267136)輸出131621703842267140。從我在網(wǎng)上閱讀的所有內(nèi)容來看,C 雙精度數(shù)和 JavaScript 數(shù)字都是 64 位浮點數(shù),所以我很困惑為什么它們會輸出不同的結(jié)果。有任何想法嗎?
JavaScript 似乎在做浮點錯誤(與 C 相比)
冉冉說
2021-06-02 07:10:30