Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành 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 formatted number to number javascript - chuyển đổi số được định dạng thành 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àng37 Huy hiệu bạc35 Huy hiệu Đồng8 gold badges37 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.4K22 Huy hiệu vàng85 Huy hiệu bạc109 Huy hiệu đồng22 gold badges85 silver badges109 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ạc175 Huy hiệu đồng24 gold badges107 silver badges175 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 formatted number to number javascript - chuyển đổi số được định dạng thành 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

161K27 Huy hiệu vàng169 Huy hiệu bạc227 Huy hiệu Đồng27 gold badges169 silver badges227 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

Huy hiệu vàng 19.1k88 gold badges80 silver badges72 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 formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

Tony Nguyễn giả NguyễnTony Nguyen

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

Đâ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 formatted number to number javascript - chuyển đổi số được định dạng thành 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 formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

Bycoderbycoderbycoder

611 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 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 formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

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

161K27 Huy hiệu vàng169 Huy hiệu bạc227 Huy hiệu Đồng27 gold badges169 silver badges227 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 formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

VindicarvindicarÓlafur Waage

3322 Huy hiệu bạc8 Huy hiệu Đồng19 gold badges141 silver badges195 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

Huy hiệu vàng 19.1k8

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

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành 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 badges39 silver badges58 bronze badges

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

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành 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ệ ..Diego Fortes

Việc sử dụng:

Globalize.culture("en-US");
1 hoặc
Globalize.culture("en-US");
23 gold badges29 silver badges38 bronze badges

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

NahydrinApr 13, 2021 at 19:11

1

12.9K12 Huy hiệu vàng58 Huy hiệu bạc99 Huy hiệu đồng

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

BycoderbycoderFeb 17, 2009 at 23:10

611 Huy hiệu bạc3 Huy hiệu đồngIEnumerator

// "10.000.500,61 tl" price_to_number => 10000500.615 gold badges31 silver badges33 bronze badges

// "10000500.62" number_to_price => 10.000.500,62

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

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

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

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành 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.6K19 Huy hiệu vàng141 Huy hiệu bạc195 Huy hiệu ĐồngJan 21, 2014 at 15:26

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành 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ệ.

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

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.Aug 28, 2020 at 19:50

TYPEXTRIPTBrian Burns

Huy hiệu vàng 19.1k88 gold badges80 silver badges72 bronze badges

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

Tony Nguyễn giả Nguyễn

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

4035 huy hiệu bạc11 huy hiệu đồngApr 13 at 12:51

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

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

Đã trả lời ngày 16 tháng 8 năm 2018 lúc 21:47Aug 16, 2018 at 21:47

Hướng dẫn convert formatted number to number javascript - chuyển đổi số được định dạng thành số javascript

Điều này làm việc cho tôi và bao gồm hầu hết các trường hợp cạnh :)

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

Đã trả lời ngày 6 tháng 4 năm 2020 lúc 16:05Apr 6, 2020 at 16:05

SimosimoSimo

3542 Huy hiệu bạc16 Huy hiệu Đồng2 silver badges16 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.2636 huy hiệu vàng35 Huy hiệu bạc46 Huy hiệu đồng6 gold badges35 silver badges46 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 formatted number to number javascript - chuyển đổi số được định dạng thành 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

Số () trong JavaScript là gì?

Mã hóa số Kiểu số JavaScript là định dạng nhị phân 64 bit chính xác kép IEEE 754 giá trị, như gấp đôi trong Java hoặc C#.Điều này có nghĩa là nó có thể đại diện cho các giá trị phân số, nhưng có một số giới hạn đối với cường độ và độ chính xác của số được lưu trữ.a double-precision 64-bit binary format IEEE 754 value, like double in Java or C#. This means it can represent fractional values, but there are some limits to the stored number's magnitude and precision.

Làm thế nào một chuỗi có thể được chuyển đổi thành một số?

Bạn chuyển đổi một chuỗi thành một số bằng cách gọi phương thức parse hoặc tryparse được tìm thấy trên các loại số (int, dài, gấp đôi, v.v.) hoặc bằng cách sử dụng các phương thức trong lớp System.convert.by calling the Parse or TryParse method found on numeric types ( int , long , double , and so on), or by using methods in the System.Convert class.