272 Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Learn more.
Tôi cần hiển thị giá trị tiền tệ ở định dạng function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
2 bằng một nghìn, hoặc function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
3, function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
4, function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
5, v.v. Để định dạng số? Penny Liu Huy hiệu vàng 13K571 Huy hiệu bạc86 Huy hiệu đồng5 gold badges71 silver badges86 bronze badges
hỏi ngày 27 tháng 2 năm 2012 lúc 7:52Feb 27, 2012 at 7:52 4 Một phiên bản tổng quát hơn: function nFormatter(num, digits) {
const lookup = [
{ value: 1, symbol: "" },
{ value: 1e3, symbol: "k" },
{ value: 1e6, symbol: "M" },
{ value: 1e9, symbol: "G" },
{ value: 1e12, symbol: "T" },
{ value: 1e15, symbol: "P" },
{ value: 1e18, symbol: "E" }
];
const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
var item = lookup.slice().reverse().find(function(item) {
return num >= item.value;
});
return item ? (num / item.value).toFixed(digits).replace(rx, "$1") + item.symbol : "0";
}
/*
* Tests
*/
const tests = [
{ num: 0, digits: 1 },
{ num: 12, digits: 1 },
{ num: 1234, digits: 1 },
{ num: 100000000, digits: 1 },
{ num: 299792458, digits: 1 },
{ num: 759878, digits: 1 },
{ num: 759878, digits: 0 },
{ num: 123, digits: 1 },
{ num: 123.456, digits: 1 },
{ num: 123.456, digits: 2 },
{ num: 123.456, digits: 4 }
];
tests.forEach(function(test) {
console.log("nFormatter(" + test.num + ", " + test.digits + ") = " + nFormatter(test.num, test.digits));
});
Đã trả lời ngày 27 tháng 2 năm 2012 lúc 9:03Feb 27, 2012 at 9:03
Salman Asalman aSalman A 253K80 Huy hiệu vàng423 Huy hiệu bạc513 Huy hiệu Đồng80 gold badges423 silver badges513 bronze badges 13 Có vẻ như điều này sẽ phù hợp với bạn: function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900
Đã trả lời ngày 27 tháng 2 năm 2012 lúc 7:56Feb 27, 2012 at 7:56 Jake Feaseljake FeaselJake Feasel 16,5K5 Huy hiệu vàng52 Huy hiệu bạc66 Huy hiệu Đồng5 gold badges52 silver badges66
bronze badges 8 Đây là một giải pháp đơn giản để tránh tất cả các tuyên bố function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
9 (với sức mạnh của const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 0).var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
Tiền thưởng memeconst formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 1 đại diện cho cái gì? Đã trả lời ngày 21 tháng 11 năm 2016 lúc 16:02Nov 21, 2016 at 16:02
Waylon Flinnwaylon FlinnWaylon Flinn 19.7K15 Huy hiệu vàng68 Huy hiệu bạc71 Huy hiệu đồng15 gold badges68 silver badges71 bronze badges 6 Cải thiện hơn nữa câu trả lời của Salman vì nó trả về NFormatter (33000) là 33,0k function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
bây giờ nformatter (33000) = 33k Đã trả lời ngày 21 tháng 2 năm 2013 lúc 4:59Feb 21, 2013 at 4:59
YashyashYash 2.0732 Huy hiệu vàng15 Huy hiệu bạc11 Huy hiệu đồng2 gold
badges15 silver badges11 bronze badges 3 Một cách tiếp cận thẳng có khả năng đọc tốt nhất và sử dụng bộ nhớ nhỏ nhất. Không cần thiết kế quá mức với việc sử dụng regex, đối tượng bản đồ, đối tượng toán học, vòng lặp, v.v. Định dạng giá trị tiền mặt với kconst formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500));
Định dạng giá trị tiền mặt với k m b tconst formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
console.log(formatCash(1235000));
Sử dụng số âmlet format;
const number = -1235000;
if (number < 0) {
format = '-' + formatCash(-1 * number);
} else {
format = formatCash(number);
}
Đã trả lời ngày 4 tháng 5 năm 2019 lúc 23:13May 4, 2019 at 23:13
tim-montaguetim-montaguetim-montague 14.6K4 Huy hiệu vàng56 Huy hiệu bạc45 Huy hiệu Đồng4
gold badges56 silver badges45 bronze badges 1 /**
* Shorten number to thousands, millions, billions, etc.
* http://en.wikipedia.org/wiki/Metric_prefix
*
* @param {number} num Number to shorten.
* @param {number} [digits=0] The number of digits to appear after the decimal point.
* @returns {string|number}
*
* @example
* // returns '12.5k'
* shortenLargeNumber(12543, 1)
*
* @example
* // returns '-13k'
* shortenLargeNumber(-12567)
*
* @example
* // returns '51M'
* shortenLargeNumber(51000000)
*
* @example
* // returns 651
* shortenLargeNumber(651)
*
* @example
* // returns 0.12345
* shortenLargeNumber(0.12345)
*/
function shortenLargeNumber(num, digits) {
var units = ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'],
decimal;
for(var i=units.length-1; i>=0; i--) {
decimal = Math.pow(1000, i+1);
if(num <= -decimal || num >= decimal) {
return +(num / decimal).toFixed(digits) + units[i];
}
}
return num;
}
THX @COS Để nhận xét, tôi đã loại bỏ Math.Round10 phụ thuộc. Đã trả lời ngày 19 tháng 2 năm 2015 lúc 13:50Feb 19, 2015 at 13:50 1 Cung cấp tín dụng cho Waylon Flinn nếu bạn thích điều nàyĐiều này đã được cải thiện từ cách tiếp cận thanh lịch hơn của anh ấy để xử lý các số âm và trường hợp ".0". Càng ít vòng lặp và các trường hợp "nếu" bạn có, IMO càng tốt. function abbreviateNumber(number) {
const SI_POSTFIXES = ["", "k", "M", "G", "T", "P", "E"];
const sign = number < 0 ? '-1' : '';
const absNumber = Math.abs(number);
const tier = Math.log10(absNumber) / 3 | 0;
// if zero, we don't need a prefix
if(tier == 0) return `${absNumber}`;
// get postfix and determine scale
const postfix = SI_POSTFIXES[tier];
const scale = Math.pow(10, tier * 3);
// scale the number
const scaled = absNumber / scale;
const floored = Math.floor(scaled * 10) / 10;
// format number and add postfix as suffix
let str = floored.toFixed(1);
// remove '.0' case
str = (/\.0$/.test(str)) ? str.substr(0, str.length - 2) : str;
return `${sign}${str}${postfix}`;
}
JSfiddle với các trường hợp thử nghiệm -> https://jsfiddle.net/qhbrz04o/9/ Đã trả lời ngày 1 tháng 2 năm 2017 lúc 16:19Feb 1, 2017 at 16:19 Thứ sáu của vuaKing Friday 23.7K12 Huy hiệu vàng86 Huy hiệu bạc83 Huy hiệu đồng12 gold badges86 silver badges83 bronze badges 5 Đây là khá thanh lịch. function formatToUnits(number, precision) {
const abbrev = ['', 'k', 'm', 'b', 't'];
const unrangifiedOrder = Math.floor(Math.log10(Math.abs(number)) / 3)
const order = Math.max(0, Math.min(unrangifiedOrder, abbrev.length -1 ))
const suffix = abbrev[order];
return (number / Math.pow(10, order * 3)).toFixed(precision) + suffix;
}
formatToUnits(12345, 2)
==> "12.35k"
formatToUnits(0, 3)
==> "0.000"
Đã trả lời ngày 5 tháng 4 năm 2018 lúc 11:14Apr 5, 2018 at 11:14 NovellizatornovellizatorNovellizator 12.5k9 Huy hiệu vàng41 Huy hiệu bạc63 Huy hiệu Đồng9 gold badges41 silver
badges63 bronze badges 0 Tôi nghĩ rằng nó có thể là một giải pháp. function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 0 Đã trả lời ngày 21 tháng 5 năm 2021 lúc 9:07May 21, 2021 at 9:07 Etsuko Susuietsuko SusuiEtsuko Susui 1.3757 Huy hiệu vàng12 Huy hiệu bạc22 Huy hiệu đồng7 gold badges12 silver badges22 bronze badges 1 Bạn có thể sử dụng gói định dạng D3 được mô hình hóa sau khi định dạng chuỗi nâng cao Python PEP3101: function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 1 Đã trả lời ngày 3 tháng 11 năm 2015 lúc 10:32Nov 3, 2015 at
10:32 0 Bằng cách loại bỏ vòng lặp trong giải pháp @martin-sznapka, bạn sẽ giảm 40%thời gian thực hiện. function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 2Kiểm tra tốc độ (20000 mẫu ngẫu nhiên) cho các giải pháp khác nhau từ chủ đề này function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 3 Đã trả lời ngày 1 tháng 5 năm 2020 lúc 9:39May 1, 2020 at 9:39
FerasferasFeras 2.26530 huy hiệu bạc23 Huy hiệu đồng30
silver badges23 bronze badges Cách làm điều này đơn giản và dễ nhất là function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 4Điều này làm việc cho bất kỳ số. Bao gồm const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 2 const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 3, v.v.Lưu ý: Không làm việc trong Safari. Đã trả lời ngày 1 tháng 4 năm 2020 lúc 5:10Apr 1, 2020 at 5:10 1 Phương pháp ngắn và chung chungBạn có thể tạo đối tượng cấu hình const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 4 dài hoặc ngắn như bạn muốn, tùy thuộc vào phạm vi của các giá trị bạn thử nghiệm.function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 5 Đã trả lời ngày 5 tháng 3 năm 2020 lúc 16:30Mar 5, 2020 at 16:30 Gil Epshalingil EpshtainGil Epshtain 7.6887 Huy hiệu vàng62 Huy hiệu bạc79 Huy hiệu đồng7 gold badges62 silver badges79 bronze badges Cải thiện hơn nữa câu trả lời của @Yash với hỗ trợ số âm: function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 6 Đã trả lời ngày 6 tháng 1 năm 2015 lúc 8:29Jan 6, 2015 at 8:29 StrawberrystrawberryStrawberry 63.6K56 Huy hiệu vàng144 Huy hiệu bạc195 Huy hiệu Đồng56 gold badges144 silver badges195 bronze badges 0 Không hài lòng với bất kỳ giải pháp được đăng nào, vì vậy đây là phiên bản của tôi: - Hỗ trợ các số dương và âm
- Hỗ trợ số mũ tiêu cực
- Vòng lên đến số mũ tiếp theo nếu có thể
- Thực hiện kiểm tra giới hạn (không có lỗi với số rất lớn/nhỏ)
- Dải tắt các số không/không gian
Hỗ trợ tham số chính xác function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 7
Đã trả lời ngày 29 tháng 8 năm 2019 lúc 22:56Aug 29, 2019 at 22:56 TTKTTKttk 3952 Huy hiệu bạc3 Huy hiệu đồng2 silver badges3 bronze badges Phiên bản 2020 của giải pháp của Waylon Flinn. edition of Waylon Flinn's solution. function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 8Các bài kiểm tra và ví dụ: Đã trả lời ngày 16 tháng 12 năm 2020 lúc 13:17Dec 16, 2020 at 13:17 2
function kFormatter(num) {
return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)
}
console.log(kFormatter(1200)); // 1.2k
console.log(kFormatter(-1200)); // -1.2k
console.log(kFormatter(900)); // 900
console.log(kFormatter(-900)); // -900 9transform(9999,2) // "10,00k" Đã trả lời ngày 10 tháng 1 lúc 12:35Jan 10 at 12:35 1 Bài đăng này khá cũ nhưng bằng cách nào đó tôi đã đạt được bài đăng này để tìm kiếm một cái gì đó. Vì vậy, để thêm số đầu vào của tôi JS là giải pháp một điểm dừng bây giờ một ngày. Nó cung cấp một số lượng lớn các phương pháp để giúp định dạng các số
http://numeraljs.com/ Đã trả lời ngày 15 tháng 6 năm 2015 lúc 23:40Jun 15, 2015 at 23:40 VatsalvatsalVatsal 1.9581 Huy hiệu vàng20 Huy hiệu bạc24 Huy hiệu đồng1 gold badge20 silver badges24 bronze badges 1 Dưới đây là một tùy chọn sử dụng const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 5:var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
0 Đã trả lời ngày 17 tháng 11 năm 2020 lúc 19:26Nov 17, 2020 at 19:26 Thêm vào câu trả lời hàng đầu, điều này sẽ cung cấp 1k cho 1000 thay vì 1,0k var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
1 Đã trả lời ngày 9 tháng 3 năm 2017 lúc 5:57Mar 9, 2017 at 5:57 Một phiên bản sửa đổi của câu trả lời của Waylon Flinn với sự hỗ trợ cho số mũ âm: var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
2Đầu ra dự kiến: var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
3Đã trả lời ngày 28 tháng 3 năm 2019 lúc 9:58Mar 28, 2019 at 9:58
Chức năng này có thể biến đổi số lượng khổng lồ (cả tích cực và tiêu cực) thành định dạng thân thiện với người đọc mà không mất độ chính xác của nó: var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
4 Đã trả lời ngày 11 tháng 4 năm 2019 lúc 12:09Apr 11, 2019 at 12:09 Hamzeen Hameemhamzeen HameemHamzeen Hameem 2.0701 Huy hiệu vàng26 Huy hiệu bạc25 Huy hiệu đồng1 gold badge26 silver
badges25 bronze badges Cải thiện câu trả lời của @tfmontague cho định dạng các vị trí thập phân. 33,0k đến 33k var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
5 Đã trả lời ngày 19 tháng 7 năm 2019 lúc 6:04Jul
19, 2019 at 6:04 Abdul Rahmanabdul RahmanAbdul Rahman 1.7931 Huy hiệu vàng20 Huy hiệu bạc21 Huy hiệu đồng1 gold badge20 silver badges21 bronze badges Tôi đã nghĩ ra một mã rất golf, và nó rất ngắn! var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
6 Đã trả lời ngày 28 tháng 10 năm 2019 lúc 20:10Oct 28, 2019 at 20:10 0 Cải thiện hơn nữa câu trả lời của Salman vì các trường hợp như Nformatter (99999,1) trả về 1000k. var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
7 Đã trả lời ngày 6 tháng 11 năm 2019 lúc 16:43Nov
6, 2019 at 16:43 Hỗ trợ lên đến const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 6 và xuống đến const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 7var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
8 Đã trả lời ngày 14 tháng 9 năm 2020 lúc 15:04Sep 14, 2020 at 15:04 Dugongdugongdugong 2.5661 Huy hiệu vàng9 Huy hiệu bạc26 Huy hiệu đồng1 gold badge9 silver badges26 bronze badges - Hỗ trợ số âm
- Kiểm tra
const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 8 - Thay đổi
const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3) return +(n / 1e3).toFixed(1) + "K";
};
console.log(formatCash(2500)); 9 thành const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
console.log(formatCash(1235000)); 0 nếu bạn muốn đơn vị tối đa là const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
console.log(formatCash(1235000)); 1 - Tùy chọn cho cơ sở (1K = 1000 / 1K = 1024)
var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];
function abbreviateNumber(number){
// what tier? (determines SI symbol)
var tier = Math.log10(Math.abs(number)) / 3 | 0;
// if zero, we don't need a suffix
if(tier == 0) return number;
// get suffix and determine scale
var suffix = SI_SYMBOL[tier];
var scale = Math.pow(10, tier * 3);
// scale the number
var scaled = number / scale;
// format number and add suffix
return scaled.toFixed(1) + suffix;
}
9 Đã trả lời ngày 4 tháng 9 năm 2018 lúc 1:35Sep 4, 2018 at 1:35 Cánh dai dẳngSteely Wing 15K6 Huy hiệu vàng54 Huy hiệu bạc51 Huy hiệu đồng6 gold badges54 silver badges51 bronze badges 2 function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
0 Đã trả lời ngày 15 tháng 3 năm 2018 lúc 11:37Mar 15, 2018 at 11:37
1 Tôi đang sử dụng chức năng này. Nó hoạt động cho cả const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
console.log(formatCash(1235000)); 2 và const formatCash = n => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6) return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9) return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12) return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
console.log(formatCash(1235000)); 3.function nFormatter(num) {
if (num >= 1000000000) {
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G';
}
if (num >= 1000000) {
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
}
if (num >= 1000) {
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
}
return num;
}
1 Đã trả lời ngày 12 tháng 6 năm 2019 lúc 10:05Jun 12, 2019 at
10:05 Shahshahshah 1.1652 huy hiệu vàng19 Huy hiệu bạc40 Huy hiệu đồng2 gold badges19 silver badges40 bronze badges
Làm thế nào để bạn chuyển đổi các giá trị thành k?
Nhấn Ctrl+1 hoặc nhấp chuột phải và chọn các ô định dạng để mở hộp thoại Định dạng ô. Chuyển đến tab Thenumber (đó là tab mặc định nếu bạn chưa mở trước đó). Chọn tùy chỉnh trong danh sách danh mục. Nhập vào#, ## 0,0, "K" để hiển thị 1.500.800 là 1.500,8 K.Type in #,##0.0, "K" to display 1,500,800 as 1,500.8 K.
Làm thế nào để bạn chuyển đổi một số thành một chuỗi phân tách bằng dấu phẩy?
Sử dụng phương thức tolocalestring () Phương thức javaScript tolocalestring () được sử dụng để chuyển đổi các phần tử của mảng đã cho thành một chuỗi và các chuỗi này được phân tách bằng dấu phẩy ",".
The JavaScript toLocaleString() method is used to convert the elements of the given array into a string, and these Strings are separated by a comma ",".
Làm thế nào để bạn in một số với dấu phẩy dưới dạng hàng ngàn phân tách trong JavaScript?
Để đánh dấu dấu phẩy hàng ngàn trong một số lượng lớn trong JavaScript, hãy sử dụng phương thức Tolocalestring () tích hợp.Nó định vị số lượng để theo một định dạng số cụ thể của quốc gia.Để tách hàng ngàn với dấu phẩy, hãy bản địa hóa số cho Hoa Kỳ.use the built-in toLocaleString() method. It localizes the number to follow a country-specific number formatting. To separate thousands with commas, localize the number to the USA.
Làm thế nào để bạn viết tắt số trong javascript?
Số lượng viết tắt hàm có hai đối số: số bạn muốn rút ngắn và số lượng số thập phân bạn muốn số có.Ví dụ, Abbrnum (34549,0) sẽ trả lại 34K và Abbrnum (34549,1) sẽ trả lại 34,5k.The function takes two arguments: the number you want to shorten and the number of decimal places you want the number to have. For example, abbrNum(34549,0) would return 34k and abbrNum(34549,1) would return 34.5k . |