parseFloat() 函數可解析一個字串,並返回一個浮點數。
它的文法是:parseFloat(string);
注釋:只有字串中的第一個數字會被返回,開頭和結尾的空格是允許的。
提示:如果字串的第一個字元不能被轉換為數字,那麼 parseFloat() 會返回 NaN,如果只想解析數位整數部分,請使用 parseInt() 方法。
樣本:
<script type="text/javascript"> document.write(parseFloat("10")) ; document.write(parseFloat("10.00")) ; document.write(parseFloat("10.33")) ; document.write(parseFloat("34 45 66")) ; document.write(parseFloat(" 60 ")) ; document.write(parseFloat("40 years")); document.write(parseFloat("He was 40")); </script>
結果:
10 10 10.33 34 60 40 NaN
以上是parseFloat() 函數的一個簡介。
下面來分享下遇到的問題,先上一個簡單的例子吧:
例子:var num=parseFloat("234432.9")-parseFloat"0.2");alert(num);結果是:234432.69999999998
很明顯,這個結果不是我們想要的那個結果。
為啥會出現這個問題,說實話,我也不太清楚。但是依靠度娘我解決了這個問題所以先把解決方案分享給大家!
第一種:四捨五入Math.round(parseFloat("234432.9")-parseFloat"0.2"));
第二種:保留幾位小數
num.toFixed(2); toFixed(n)中的n代表保留幾位
第三種:擴大一定的倍數,對結果在縮小這個倍數
var num1=parseFloat("234432.9")*1000000000000;
var num2=parseFloat("0.2")*1000000000000;
var num3=(num1-num2)/1000000000000;
結果為 234432.7
前兩種做法 不太推薦,毫無疑問,前兩種做法都會降低精度值!所以推薦第三種