我想驗證一個文本框四捨五入到小數點後兩位。但是,我做不是想要收起來。我想驗證一個文本框四捨五入,使用javascript
例如;如果我輸入19.999那麼結果將是19.99,而不是20.00
如果我輸入19.7,那麼結果將是19.70。如果我輸入19,那麼結果將是19.00
toFixed()函數在我的代碼中不起作用。
有人可以幫助我嗎?
我想驗證一個文本框四捨五入到小數點後兩位。但是,我做不是想要收起來。我想驗證一個文本框四捨五入,使用javascript
例如;如果我輸入19.999那麼結果將是19.99,而不是20.00
如果我輸入19.7,那麼結果將是19.70。如果我輸入19,那麼結果將是19.00
toFixed()函數在我的代碼中不起作用。
有人可以幫助我嗎?
function withPrec(number, digitsAfterComma) {
if (digitsAfterComma <= 0 || digitsAfterComma > 10) return number; // bad args
var str = String(number);
var comma = str.indexOf('.');
var zeroes = '0000000000'.substring(0, digitsAfterComma);
return (comma == -1) ?
str + '.' + zeroes : (str + zeroes).substring(0, comma + digitsAfterComma + 1);
}
使用子行動,以避免中間陣列。
用作withPrec(10.00001, 2)
或withPrec(1, 5)
;
var string = "19.99999";
var newString = string.split(string.indexOf('.') + 2)[0];
other questions的更佳回答: 使用Number(aNumber)。 toFixed(2)
如果我將進入19.7則它給出19.7,但我想在這種情況下,19.70 – Sanjeev 2011-05-26 12:59:02
啊確定 - 是的,沒有想到這一點! – 2011-05-26 13:18:05
@Sanjeev,修復了你(它也沒有處理整數)。一旦它有多條線,最好爲它製作一個功能。 – tucuxi 2011-05-26 13:50:33