用JS做計算的時候小數位不正常--Js中parseFloat()方法所產生的精度問題


 

<script language="javascript">

var a = "0.11";
var b = "0.2801";
var c = "1.002";


var sum1 = parseFloat(a)+parseFloat(b)+parseFloat(c);
var sum2 = (parseFloat(a)+parseFloat(b)+parseFloat(c)).toFixed(4)
document.write("a+b+c="+sum1);
document.write("<br/>")
document.write("a+b+c="+sum2)


</script>

1.3921000000000001

1.3921

a,b,c相加本來為1.3921,但sum1得出的結果為:1.3921000000000001,顯然不正確,通過toFixed(n)方法修正后,得到正確結果。

 

js parsefloat parseint

JavaScript提供了3個顯式的類型轉換函數,分別是eval()、parseInt()和parseFloat()。

eval()函數:將字符串表達式轉換成數字值。例如,語句total=eval("432.1*10")的結果是total=4321即將數值4321賦予total變量。

parseInt()函數:把字符串轉換成整數。返回是從字符串的第一個字符開始,如果字符不是以整數開頭則返回0。parseInt()函數還可以轉換十六進制數或十進制數。

例如:parseInt("123xyz") 返回123,而parseInt("xyz")返回0。

parseFloat()函數:類似於parseInt()函數,它返回字符串上包含的第一個浮點數。如果字符串不以有效浮點數開頭,則返回0。

例如:parseFloat("2.1e4xyz")返回21000;而parseFloat("xyz")返回0。

JavaScript中parseFloat函數方法是返回由字符串轉換得到的浮點數。 使用方法:

parseFloat(numString)其中numString 參數是包含浮點數的字符串。JavaScript中parseFloat函數方法返回與 numString 中保存的數相等的數字表示。如果 numString 的前綴不能解釋為浮點數,則返回 NaN (而不是數字)。

parseFloat("abc") // 返回 NaN。 
parseFloat("1.2abc") // 返回 1.2。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM