JS轉換成數字類型Number()


JavaScript與許多其他編程語言不同,JavaScript 不會定義不同類型的數,比如整數、短的、長的、浮點的等等。
在JS中浮點的算數,個人實際測試了幾個,0.1+0.2,0.4+0.2,0.7+0.2,這種計算的數值就是不是很准確。
字符串轉換成數字類型的方法1:Number(需要轉換的字符串)
可以通過每個數乘以10,最后再整體除以10的方法,讓這幾個有問題的浮點數顯示正常。
例如,0.4+0.2的結是0.6000000000000001
而使用(0.4*10+0.2*10)/10,結果就是0.6
測試代碼:

<body>
小數測試:
文本框value值獲取的是string類型的:<input type="text" id="A1" value="0.3">+
<input type="text" id="A2" value="0.4">=
<input type="text" id="S1">
<br>
<input type="button" onclick="s1()" value="點擊字符串拼接"><br>
<input type="button" onclick="s2()" value="點擊Number轉換的"><br>
<input type="button" onclick="s3()" value="點擊Number轉換的且用了乘除法"><br>
<script language="javascript" type="text/javascript">   
function s1(){//文本框輸入的為字符串類型,相加后為字符串拼接
    var textA1,textA2,textS1;
    textA1=document.getElementById("A1").value;
    textA2=document.getElementById("A2").value;
    textS1=textA1+textA2;
    document.getElementById("S1").value=textS1;
    console.log("textA1的類型是:"+typeof(textA1));
    console.log("textA2的類型是:"+typeof(textA2));
    console.log("textS1的類型是:"+typeof(textS1));
};
function s2(){//字符串類型轉換成數字類型,Number(需要轉換的字符串)
    var textA1,textA2,textS1;
    textA1=Number(document.getElementById("A1").value);
    textA2=Number(document.getElementById("A2").value);
    textS1=textA1+textA2;
    document.getElementById("S1").value=textS1;
    console.log("textA1的類型是:"+typeof(textA1));
    console.log("textA2的類型是:"+typeof(textA2));
    console.log("textS1的類型是:"+typeof(textS1));
    console.log(0.3+0.4);
    console.log(0.3+0.3);
    console.log(0.1+0.2);
    console.log(0.4+0.2);    
    console.log(0.7+0.2);
    console.log(0.6+0.2);
    console.log(0.44+0.22);
};
function s3(){//用乘除法解決該問題
    var textA1,textA2,textS1;
    textA1=Number(document.getElementById("A1").value);
    textA2=Number(document.getElementById("A2").value);
    textS1=(textA1*10+textA2*10)/10;
    document.getElementById("S1").value=textS1;
    console.log(0.4+0.2);
    console.log((0.4*10+0.2*10)/10);
};
</script> 
</body>

圖示:


免責聲明!

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



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