Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Tôi có một hộp văn bản sẽ có một chuỗi tiền tệ trong đó mà sau đó tôi cần chuyển đổi chuỗi đó thành một đôi để thực hiện một số hoạt động trên đó.

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
9 →
Globalize.culture("en-US");
0

Điều này cần phải xảy ra tất cả các phía khách hàng. Tôi không có lựa chọn nào khác ngoài việc để chuỗi tiền tệ làm chuỗi tiền tệ làm đầu vào nhưng cần chuyển/chuyển đổi nó thành một đôi để cho phép một số hoạt động toán học.

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

hỏi ngày 17 tháng 2 năm 2009 lúc 22:57Feb 17, 2009 at 22:57

Bobby Borszichbobby BorszichBobby Borszich

11.4K8 Huy hiệu vàng36 Huy hiệu bạc35 Huy hiệu Đồng8 gold badges36 silver badges35 bronze badges

Xóa tất cả các dấu chấm / chữ số không:

var currency = "-$4,400.50";
var number = Number(currency.replace(/[^0-9.-]+/g,""));

Đã trả lời ngày 17 tháng 2 năm 2009 lúc 23:20Feb 17, 2009 at 23:20

7

Kế toán.js là con đường để đi. Tôi đã sử dụng nó tại một dự án và có kinh nghiệm rất tốt khi sử dụng nó.

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000

Bạn có thể tìm thấy nó tại GitHub

Andrewtweber

23.4K21 Huy hiệu vàng85 Huy hiệu bạc108 Huy hiệu đồng21 gold badges85 silver badges108 bronze badges

Đã trả lời ngày 27 tháng 3 năm 2013 lúc 15:28Mar 27, 2013 at 15:28

Thomas Kremmelthomas KremmelThomas Kremmel

14.3K24 Huy hiệu vàng107 Huy hiệu bạc174 Huy hiệu đồng24 gold badges107 silver badges174 bronze badges

2

Sử dụng regex để loại bỏ hình thành (đô la và dấu phẩy) và sử dụng parsefloat để chuyển đổi chuỗi thành số điểm nổi.`

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;

Đã trả lời ngày 17 tháng 2 năm 2009 lúc 23:13Feb 17, 2009 at 23:13

3

Tôi biết đây là một câu hỏi cũ nhưng muốn đưa ra một tùy chọn bổ sung.

JQuery Global hóa cung cấp khả năng phân tích một định dạng cụ thể về văn hóa cho một chiếc phao.

https://github.com/jquery/globalize

Cho một chuỗi "$ 13,042,00" và toàn cầu hóa được đặt thành en-us:

Globalize.culture("en-US");

Bạn có thể phân tích giá trị phao ra như vậy:

var result = Globalize.parseFloat(Globalize.format("$13,042.00", "c"));

Điều này sẽ cung cấp cho bạn:

13042.00

Và cho phép bạn làm việc với các nền văn hóa khác.

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Andy Stabler

1.2991 Huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồng1 gold badge14 silver badges19 bronze badges

Đã trả lời ngày 21 tháng 9 năm 2011 lúc 6:15Sep 21, 2011 at 6:15

PhillphillPhill

18.1K7 Huy hiệu vàng59 Huy hiệu bạc101 Huy hiệu Đồng7 gold badges59 silver badges101 bronze badges

0

Tôi biết đây là một câu hỏi cũ, nhưng câu trả lời của CMS dường như có một lỗ hổng nhỏ: nó chỉ hoạt động nếu định dạng tiền tệ sử dụng "." như phân tách thập phân. Ví dụ: nếu bạn cần làm việc với rúp Nga, chuỗi sẽ trông như thế này: "1 000,00 chà."

Giải pháp của tôi ít thanh lịch hơn nhiều so với CMS, nhưng nó nên thực hiện thủ thuật.

var currency = "1 000,00 rub."; //it works for US-style currency strings as well
var cur_re = /\D*(\d+|\d.*?\d)(?:\D+(\d{2}))?\D*$/;
var parts = cur_re.exec(currency);
var number = parseFloat(parts[1].replace(/\D/,'')+'.'+(parts[2]?parts[2]:'00'));
console.log(number.toFixed(2));

Assumptions:

  • Giá trị tiền tệ sử dụng ký hiệu thập phân
  • Không có chữ số nào trong chuỗi không phải là một phần của giá trị tiền tệ
  • Giá trị tiền tệ chứa 0 hoặc 2 chữ số trong phần phân số của nó *

RegEXP thậm chí có thể xử lý một cái gì đó như "1.999 đô la và 99 xu", mặc dù nó không phải là một tính năng dự định và nó không nên dựa vào.

Hy vọng điều này sẽ giúp ai đó.

MPLUNGJAN

160K27 Huy hiệu vàng168 Huy hiệu bạc226 Huy hiệu Đồng27 gold badges168 silver badges226 bronze badges

Đã trả lời ngày 23 tháng 3 năm 2013 lúc 6:36Mar 23, 2013 at 6:36

VindicarvindicarVindicar

3322 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

3

Ví dụ này chạy ok

var currency = "$1,123,456.00";
var number = Number(currency.replace(/[^0-9\.]+/g,""));
console.log(number);

Brian bị bỏng

Phù hiệu vàng 19K879 Huy hiệu bạc71 Huy hiệu đồng8 gold badges79 silver badges71 bronze badges

Đã trả lời ngày 31 tháng 12 năm 2013 lúc 3:28Dec 31, 2013 at 3:28

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Tony Nguyễn giả NguyễnTony Nguyen

4035 huy hiệu bạc11 huy hiệu đồng5 silver badges11 bronze badges

// "10.000.500,61 tl" price_to_number => 10000500.61

// "10000500.62" number_to_price => 10.000.500,62

JS Fiddle: https://jsfiddle.net/limitlessisa/oxhgd32c/

var price="10.000.500,61 TL";
document.getElementById("demo1").innerHTML = price_to_number(price);

var numberPrice="10000500.62";
document.getElementById("demo2").innerHTML = number_to_price(numberPrice);

function price_to_number(v){
    if(!v){return 0;}
    v=v.split('.').join('');
    v=v.split(',').join('.');
    return Number(v.replace(/[^0-9.]/g, ""));
}

function number_to_price(v){
    if(v==0){return '0,00';}
    v=parseFloat(v);
    v=v.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
    v=v.split('.').join('*').split(',').join('.').split('*').join(',');
    return v;
}

Đã trả lời ngày 26 tháng 7 năm 2017 lúc 15:39Jul 26, 2017 at 15:39

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Đây là chức năng của tôi. Làm việc với tất cả các loại tiền tệ ..

function toFloat(num) {
    dotPos = num.indexOf('.');
    commaPos = num.indexOf(',');

    if (dotPos < 0)
        dotPos = 0;

    if (commaPos < 0)
        commaPos = 0;

    if ((dotPos > commaPos) && dotPos)
        sep = dotPos;
    else {
        if ((commaPos > dotPos) && commaPos)
            sep = commaPos;
        else
            sep = false;
    }

    if (sep == false)
        return parseFloat(num.replace(/[^\d]/g, ""));

    return parseFloat(
        num.substr(0, sep).replace(/[^\d]/g, "") + '.' + 
        num.substr(sep+1, num.length).replace(/[^0-9]/, "")
    );

}

Việc sử dụng:

Globalize.culture("en-US");
1 hoặc
Globalize.culture("en-US");
2

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Nahydrin

12.9K12 Huy hiệu vàng58 Huy hiệu bạc99 Huy hiệu đồng12 gold badges58 silver badges99 bronze badges

Đã trả lời ngày 3 tháng 3 năm 2017 lúc 1:46Mar 3, 2017 at 1:46

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Bycoderbycoderbycoder

511 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

Bạn có thể thử cái này

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
0

MPLUNGJAN

160K27 Huy hiệu vàng168 Huy hiệu bạc226 Huy hiệu Đồng27 gold badges168 silver badges226 bronze badges

Đã trả lời ngày 23 tháng 3 năm 2013 lúc 6:36Feb 17, 2009 at 23:11

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

VindicarvindicarÓlafur Waage

3322 Huy hiệu bạc8 Huy hiệu Đồng19 gold badges141 silver badges194 bronze badges

1

Ví dụ này chạy ok2021 you can use Currency.js.

Brian bị bỏng

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
1

Phù hiệu vàng 19K879 Huy hiệu bạc71 Huy hiệu đồng

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
2

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Đã trả lời ngày 31 tháng 12 năm 2013 lúc 3:28

Tony Nguyễn giả Nguyễn2 gold badges38 silver badges57 bronze badges

4035 huy hiệu bạc11 huy hiệu đồngOct 29, 2020 at 11:05

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

// "10.000.500,61 tl" price_to_number => 10000500.61Diego Fortes

// "10000500.62" number_to_price => 10.000.500,623 gold badges29 silver badges38 bronze badges

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
3

JS Fiddle: https://jsfiddle.net/limitlessisa/oxhgd32c/Apr 13, 2021 at 19:11

1

Đã trả lời ngày 26 tháng 7 năm 2017 lúc 15:39

Đây là chức năng của tôi. Làm việc với tất cả các loại tiền tệ ..

Việc sử dụng:

Globalize.culture("en-US");
1 hoặc
Globalize.culture("en-US");
2Feb 17, 2009 at 23:10

NahydrinIEnumerator

12.9K12 Huy hiệu vàng58 Huy hiệu bạc99 Huy hiệu đồng5 gold badges30 silver badges33 bronze badges

Đã trả lời ngày 3 tháng 3 năm 2017 lúc 1:46

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
4

Bycoderbycoder

511 Huy hiệu bạc3 Huy hiệu đồngAug 23, 2021 at 9:49

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

1

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
5

Bạn có thể thử cái này

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
6

Đã trả lời ngày 17 tháng 2 năm 2009 lúc 23:11

Ólafur waageólafur waage17 gold badges206 silver badges376 bronze badges

67.5K19 Huy hiệu vàng141 Huy hiệu bạc194 Huy hiệu đồngJan 21, 2014 at 15:26

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Đối với bất kỳ ai đang tìm kiếm một giải pháp vào năm 2021, bạn có thể sử dụng tiền tệ.

Sau nhiều nghiên cứu, đây là phương pháp đáng tin cậy nhất mà tôi tìm thấy để sản xuất, tôi không có bất kỳ vấn đề nào cho đến nay. Ngoài ra, nó rất tích cực trên GitHub.

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
7

TYPEXTRIPTApr 13 at 12:51

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Xinthose

2.7032 huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồngAug 16, 2018 at 21:47

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Đã trả lời ngày 29 tháng 10 năm 2020 lúc 11:05

accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99
accounting.unformat("€ 1.000.000,00", ","); // 1000000
9
var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
0

Diego Fortesdiego FortesApr 6, 2020 at 16:05

SimosimoSimo

3542 Huy hiệu bạc16 Huy hiệu Đồng2 silver badges16 bronze badges

Đây là một chức năng đơn giản -

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
1

Đã trả lời ngày 28 tháng 8 năm 2020 lúc 19:50Aug 28, 2020 at 19:50

Brian Burnsbrian bỏngBrian Burns

Phù hiệu vàng 19K879 Huy hiệu bạc71 Huy hiệu đồng8 gold badges79 silver badges71 bronze badges

Nhức đầu và ít được xem xét hơn với các nền văn hóa khác mà không có gì ...

Đây là folks:

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
2

đơn giản vậy thôi.

F. Müller

3.2536 huy hiệu vàng34 Huy hiệu bạc45 Huy hiệu đồng6 gold badges34 silver badges45 bronze badges

Đã trả lời ngày 20 tháng 11 năm 2020 lúc 17:31Nov 20, 2020 at 17:31

2

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
3

Tôi đã thử nghiệm cho ba biểu tượng tiền tệ trên. Bạn cũng có thể làm điều đó cho người khác.

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
4

Biểu thức thông thường trên sẽ loại bỏ mọi thứ không phải là một chữ số hoặc một khoảng thời gian. Vì vậy, bạn có thể nhận được chuỗi không có ký hiệu tiền tệ nhưng trong trường hợp "Fr. 150.00" nếu bạn điều khiển cho đầu ra thì bạn sẽ nhận được giá như

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
5

Điều đó là sai nên bạn kiểm tra chỉ mục của "." Sau đó phân chia điều đó và nhận được kết quả thích hợp.

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
6

Đã trả lời ngày 30 tháng 12 năm 2014 lúc 6:58Dec 30, 2014 at 6:58

JyotiranjanjyotiranjanJyotiranjan

6738 Huy hiệu bạc20 Huy hiệu Đồng8 silver badges20 bronze badges

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
7

Đã trả lời ngày 25 tháng 8 năm 2017 lúc 11:29Aug 25, 2017 at 11:29

Hướng dẫn convert currency to number javascript - chuyển đổi tiền tệ sang số javascript

Chức năng này sẽ hoạt động bất kỳ cài đặt địa phương và tiền tệ nào & nbsp ;:

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
8

Điều này giả định rằng bạn biết ký tự điểm thập phân (trong trường hợp của tôi, địa phương được đặt từ PHP, vì vậy tôi nhận được nó với

Globalize.culture("en-US");
3).

Đã trả lời ngày 21 tháng 1 năm 2019 lúc 19:50Jan 21, 2019 at 19:50