JS和XSLT裡都有的資料計算問題

2021-04-01 01:05:34 字數 464 閱讀 3509

在ie裡寫個js指令碼: alert((7.89*2.5).tofixed(2));

竟然彈出19.72, 而不是19.73

接著試了試: alert(7.89*2.5);   彈出19.72499999998. 而不是19.725

才知道原來是這樣使得四捨五入至小數點後兩位結果值成了19.72, 而不是19.73.

最後只好自己寫了個函式代替tofixed函式:

function round(a_num , a_bit)    // 先乘上10的n+8次方(n是需要保留的小數點位數,用8等更大數字可以使得誤差降至極低); 然後四捨五入到最接近的整數. 再除以10的n+8次方;最後就可以平安使用四捨五入函式了.

總算問題解決,差點因為相差一點點而虧大把錢

而這種計算問題發現同樣在xsl裡面都存在.可以使用同樣思想解決.

可以說是另一種bug,不過解釋引擎到底為什麼會這樣子做,還得去問微軟

js裡text和val的區別

text 獲取或者改變指定元素的文字 html 獲取或改變指定元素的html元素以及文字 val 獲取或者改變指定元素的value值 一般是表單元素 以上3個都是jquery類庫中的語法 基本沒有什麼區別,作用都是獲得當前物件的value值 一般是表單元素 只是,this.value是js的原生語法...

js裡 和 有什麼區別

運算子稱作相等,用來檢測兩個運算元是否相等,這裡的相等定義的非常寬鬆,可以允許進行型別轉換 用來檢測兩個運算元是否嚴格相等 1 對於string,number等基礎型別,和 是有區別的 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 同型別比較,直接進行...

js裡 和 有什麼區別

js裡和 有什麼區別 運算子稱作相等,用來檢測兩個運算元是否相等,這裡的相等定義的非常寬鬆,可以允許進行型別轉換 用來檢測兩個運算元是否嚴格相等 1 對於string,number等基礎型別,和 是有區別的 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等...

js裡 和 有什麼區別

運算子稱作相等,用來檢測兩個運算元是否相等,這裡的相等定義的非常寬鬆,可以允許進行型別轉換 用來檢測兩個運算元是否嚴格相等 1 對於string,number等基礎型別,和 是有區別的 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 同型別比較,直接進行...

js裡 和 有什麼區別

運算子稱作相等,用來檢測兩個運算元是否相等,這裡的相等定義的非常寬鬆,可以允許進行型別轉換 用來檢測兩個運算元是否嚴格相等 1 對於string,number等基礎型別,和 是有區別的 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 同型別比較,直接進行...