JavaScript 的乘法語法規則
result = number1 * number2;
JavaScript 的乘法規則寫法與平時在寫數學的乘法沒什麼兩樣,兩個數字用乘法運算子(*)串在一起即可相乘。JavaScript 的乘法運算範例
<script type="text/javascript">
x=3*6;
document.write(x);
document.write("<br />");
x="3"*"6";
document.write(x);
document.write("<br />");
x="3"*6;
document.write(x);
</script>
顯示結果x=3*6;
document.write(x);
document.write("<br />");
x="3"*"6";
document.write(x);
document.write("<br />");
x="3"*6;
document.write(x);
</script>
18
18
18
範例共有三組 JavaScript 的乘法運算,主要的差異僅在變數 x 的數字表示方式,第一組全部都是數字表示,第二組與第三組都有用字串來表示,不過 JavaScript 都可以順利的將數字相乘後的結果算出來。18
18
JavaScript 的乘法處理小數相乘的錯誤處理
<script type="text/javascript">
x=3.2*6;
document.write(x);
document.write("<br />");
x=(3.2*10)*6/10;
document.write(x);
document.write("<br />");
x=3.2*10*6/10;
document.write(x);
document.write("<br />");
</script>
顯示結果x=3.2*6;
document.write(x);
document.write("<br />");
x=(3.2*10)*6/10;
document.write(x);
document.write("<br />");
x=3.2*10*6/10;
document.write(x);
document.write("<br />");
</script>
19.200000000000003
19.2
19.2
看到奇怪的地方了嗎?這就是第一段中提到的 JavaScript 的乘法 bug,第一組的 3.2*6 怎麼會變成一串「19.200000000000003」這樣的結果?既然是 bug,那我們就不多做解釋,重點擺在如何解決這個問題,各位可以看到第二組與第三組就是解決方案,我們先將小數(浮點數)3.2 乘以 10,讓它變成整數 32,最後除以 10,運算式中的那個斜線(/)是除的意思。19.2
19.2
為什麼要這樣處理?因為 JavaScript 的乘法在處理整數的時候沒有 bug,所以遇到小數出現的時候,我們就先把小數變成整數,再讓 JavaScript 去做乘法的動作,這個 bug 什麼時候才會修好,我們也不知道,就只能先這樣囉!
JavaScript 的數字運算比起 PHP 麻煩許多,因為字串的問題以及小數點的問題,除了乘法外,其他的如除法、加法、減法都建議仔細的研究一下,以免誤以為跟 PHP 一樣單純,結果跑出錯誤的答案。
JavaScript 其它運算