我想將'189.46'修改爲189.5javascript:我如何將一個數字舍入到最接近的10美分?
下面是一個以數字開頭的例子。有人可以告訴我爲什麼我的方法不工作,以及正確的方法是什麼?
Math.round(parseFloat('189.46')).toFixed(1);
我想將'189.46'修改爲189.5javascript:我如何將一個數字舍入到最接近的10美分?
下面是一個以數字開頭的例子。有人可以告訴我爲什麼我的方法不工作,以及正確的方法是什麼?
Math.round(parseFloat('189.46')).toFixed(1);
乘以10和一輪的數目(使用提供的189.46 - 這會給1895),然後除以10,返回到十進制數(在本例189.5)。
假設您要求此功能從輸入中獲取值 - 而不是硬編碼的字符串/數字 - 我提供了一個輸入以輸入該值,並在click事件中觸發舍入功能的按鈕。
我也只是在一個小的基本數字檢查,以確保輸入的值是一個數字(請注意,所有輸入將產生一個字符串),但檢查簡單如果一個數字已被放入 - 解析後使用parseFloat - 將其乘以1並將新值與輸入值進行比較 - 如果不相同 - 則不是數字。
我也突然出現在清除文字描述以及的方法,當一個新的值將被輸入到輸入框 - 絕對COS' :)
function roundNumber(){
var num = parseFloat(document.getElementById('numberInput').value);
if(num * 1 !== num) {
document.getElementById('numberDisplay').innerText = 'Not a Valid Number - try again';
document.getElementById('numberInput').value = '';
} else {
var numRounded = (Math.round(num*10)/10).toFixed(1);
document.getElementById('numberDisplay').innerText = 'Rounded number: '+ numRounded;
}
}
function clearText(){
document.getElementById('numberInput').value = '';
document.getElementById('numberDisplay').innerText = '';
}
<input type="text" id="numberInput" onclick="clearText()"/>
<button type = "button" id="inputButton" onclick="roundNumber()">Round Value</button>
<p id = "numberDisplay"><p>
JavaScript的數學對象提供了一個四捨五入到整數的方法。
一個四捨五入到小數位最常見的解決方案是使用... Number.prototype.toFixed()
所以...試試這個: `
var x = '189.46';
var k = parseFloat(x).toFixed(1); //k = 189.5
var y = parseFloat(k); //y = 189.5
//typeof(k) = string
//typeof(y) = number
`
'Math.round(val * 10)/ 10' – Kaiido
只需使用'.toFixed(1)'而不需要'Math.round'。如果您計劃將其顯示爲貨幣值,可以附加一個「0」。 – Siguza