Tôi muốn định dạng một số để nó luôn có ít nhất hai chữ số thập phân.Luôn hiển thị ít nhất hai chữ số thập phân
Samples:
1
2.1
123.456
234.45
Output:
1.00
2.10
123.456
234.45
Tôi muốn định dạng một số để nó luôn có ít nhất hai chữ số thập phân.Luôn hiển thị ít nhất hai chữ số thập phân
Samples:
1
2.1
123.456
234.45
Output:
1.00
2.10
123.456
234.45
Bạn có thể sửa chữa để 2 hoặc số nơi hiện nay ;
var result = num.toFixed(Math.max(2, (num.toString().split('.')[1] || []).length));
Hãy thử điều này:
var num = 1.2;
function decimalPlaces(num) {
var match = (''+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
if (!match) { return 0; }
return Math.max(
0,
// Number of digits right of decimal point.
(match[1] ? match[1].length : 0)
// Adjust for scientific notation.
- (match[2] ? +match[2] : 0));
}
if(decimalPlaces(num) < 2){
num = num.toFixed(2);
}
alert(num);
Đây là jsfiddle
Hãy thử giải pháp này (làm việc),
var a= 1,
b= 2.1,
c = 123.456,
d = 234.45;
console.log(a.toFixed(4).replace(/0{0,2}$/, ""));
console.log(b.toFixed(4).replace(/0{0,2}$/, ""));
console.log(c.toFixed(4).replace(/0{0,2}$/, ""));
console.log(d.toFixed(4).replace(/0{0,2}$/, ""));
Nếu bạn có nhiều chữ số thập phân, bạn có thể cập nhật các số một cách dễ dàng.
Đây là tối đa 4 chữ số thập phân, điều này không giải quyết được vấn đề. – skmasq
Vui lòng xem dòng cuối cùng trong câu trả lời. Bạn có thể thay đổi điều này thành bất kỳ số thập phân nào, ví dụ: 'c.toFixed (10) .replace (/ 0 {0,8} $ /," ")' Số đầu tiên là số thập phân tối đa mà chúng ta có thể có (10 trong trường hợp này) và số thứ hai là số tối đa -min (8 trong trường hợp này). –
Vui lòng đánh dấu câu trả lời này là câu trả lời nếu giải quyết được sự cố của bạn. –
Thanh toán http://numeraljs.com/ – adamb
Bản sao của http://stackoverflow.com/questions/6134039/format-number-to-always-show-2-decimal-places –
@DavidBarker Câu hỏi bạn đã liên kết mất 2 số thập phân bất kể nếu có nhiều hơn, đây không phải là những gì op yêu cầu. –