Asked Jun 11th, 2018 1:50 PM 63 1 1
  • 63 1 1
0

Cho em hỏi cách quy đổi số

Share
  • 63 1 1

Mấy anh cho em hỏi, em muốn quy đổi còn số này 116065994688.0 thành con số $126B như trong hình thì dùng hàm nào ạ mong các anh giúp đỡ

Tran Duc Thang @thangtd90
Jun 12th, 2018 12:29 AM

Ơ anh chưa hiểu lắm, sao từ 116065994688.0 lại thành $26B được nhỉ 😂

phải là $116.1B chứ nhỉ 😂 🤔

+1
| Reply
Share
Kids @Lynk
Jun 12th, 2018 12:47 AM

Yes đúng rồ đấy ạ, chắc do em viết nhầm, mà có cách nào không anh, chỉ em với

0
| Reply
Share
Tran Duc Thang @thangtd90
Jun 12th, 2018 1:09 AM

@Lynk Anh nghĩ là mình tự viết thôi, cũng nhanh mà 😄

chẳng hạn như:

(javascript)

thousand = 1000;
million = thousand * 1000;
billion = million * 1000;

function printBigNumber(number) {
    if (number / billion >= 1)  {
        c = Math.round(number / billion * 10) / 10;
        t = 'B';
    } else if (number / million >= 1) {
        c = Math.round(number / million * 10) / 10;
        t = 'M';
    } else {
        c = Math.round(number / thousand * 10) / 10;
        t = 'K';
    }
    console.log('$' + c + t);
}

// printBigNumber(116065994688.0) => $116.1B
// printBigNumber(1160659) => $1.2M
// printBigNumber(11606) => 11.6K

hoặc dùng hàm mà bạn @huukimit trả lời ở phía dưới cũng hay 😄

0
| Reply
Share

1 ANSWERS


Answered Jun 12th, 2018 1:06 AM
Accepted
+1

Không có sẵn hàm nào trong JS để format number như bạn nói. Bạn có thể viết một hàm format lại long number về dạng short number ở trên.

Bạn tham khảo function bên dưới:

function intToString (value) {
    var suffixes = ["", "k", "m", "b","t"];
    var suffixNum = Math.floor((""+value).length/3);
    var shortValue = parseFloat((suffixNum != 0 ? (value / Math.pow(1000,suffixNum)) : value).toPrecision(2));
    if (shortValue % 1 != 0) {
        var shortNum = shortValue.toFixed(1);
    }
    return shortValue+suffixes[suffixNum];
}

Nếu bạn muốn format number ở nhiều dạng khác hơn thì có thể dùng package đã có như:

Share