我在JavaScript中有以下功能:測試上限函數接受一些文字在JavaScript
//foo is a number literal
function MyFunc(foo) {
if(foo%15 === 0) {
console.log("bar");
}
}
我想在或約在JavaScript中的Number
的尺寸上限測試的行爲。
現在我知道在JavaScript中的Number
s是IEEE 64位浮點數。我也知道IEEE浮點數具有子法線的概念,並且在非常大(甚至非常小)值的數學運算期間,它們顯着地失去了準確性,因此更有意義的是圍繞最大正常數進行測試?
我該怎麼辦?
謝謝。術語「更精細的區域」是標準的數學形容詞/名詞配對嗎? – Ben
@本:這是描述性的英語,有明確的數學意義。在正常範圍內,指數指定有效位數的縮放比例。在指數較低的區間中,表示的值比指數較高的區間更接近,因此浮點格式在前一區間中更爲精細。 –
我直覺地認爲,如果要求除法的結果落在指數較高的區域(因此精度較低),則操作的結果可能不準確。我認爲你答案的關鍵點是「這足夠好了,因爲從a中減去b的任何倍數從不會創建比a或b中的更精細的位」。任何擴展在這將是非常有用的。 – Ben