[英]How to display one digit after having decimal point along with their units for numbers using angualrjs?
[英]Limit numbers after decimal, add 0 if one digit
我正在嘗試制作一個文本字段,以便如果有一個數字 153.254,它就會變成 153.25。 如果該字段包含 154.2,則額外添加一個 0 以填充小數點后的兩位; 154.20。
toFixed() 效果很好,但我不希望數字四舍五入。 還遇到了其他解決方案,如果我輸入 1.40,那么如果我在 1 之后將光標移回,除非我清除該字段並重新開始,否則我無法輸入任何內容。
有沒有一種簡單的jQuery方法來限制小數點后的兩個字符,然后如果小數點后只有一個字符,則添加一個零來填充兩個字符的限制? (該字段可能會從數據庫接收值,這就是為什么需要第二部分的原因)
解決方案更新:對於那些感興趣的人,我把它放在一起來實現我想要的(感謝下面的答案以及關於 stackoverflow 的其他問題)
$('.number').each(function(){
this.value = parseFloat(this.value).toFixed(3).slice(0, -1);
});
$('.number').keyup(function(){
if($(this).val().indexOf('.')!=-1){
if($(this).val().split(".")[1].length > 2){
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(3).slice(0, -1);
}
}
return this; //for chaining
});
你可以做myNumber.toFixed(3).slice(0, -1)
試試這個:
var num = 153.2
function wacky_round(number, places) {
var h = number.toFixed(2);
var r = number.toFixed(4) * 100;
var r2 = Math.floor(r);
var r3 = r2 / 100;
var r4 = r3.toFixed(2);
var hDiff = number - h;
var r4Diff = number - r3;
var obj = {};
obj[hDiff] = h;
obj[r4Diff] = r4;
if (r4Diff < 0) {
return h;
}
if (hDiff < 0) {
return r4;
}
var ret = Math.min(hDiff, r4Diff);
return obj[ret];
}
alert(wacky_round(num, 2))
怎么樣
function doStuff(num){
var n = Math.floor(num * 100) / 100,
s = n.toString();
// if it's one decimal place, add a trailing zero:
return s.split('.')[1].length === 1 ? (s + '0') : n;
}
console.log(doStuff(1.1), doStuff(1.111)); // 1.10, 1.11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.