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ỏ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.
//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.
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
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
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
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: //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
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
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
1Huy hiệu vàng 19.1k8
accounting.formatMoney[4999.99, "€", 2, ".", ","]; // €4.999,99
accounting.unformat["€ 1.000.000,00", ","]; // 1000000
2
Đã 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
Đâ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:
1 hoặc Globalize.culture["en-US"];
23 gold badges29 silver badges38 bronze badgesGlobalize.culture["en-US"];
accounting.formatMoney[4999.99, "€", 2, ".", ","]; // €4.999,99
accounting.unformat["€ 1.000.000,00", ","]; // 1000000
3NahydrinApr 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
4JS Fiddle: //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
1
accounting.formatMoney[4999.99, "€", 2, ".", ","]; // €4.999,99
accounting.unformat["€ 1.000.000,00", ","]; // 1000000
5Bạ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
Đố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
7Sau 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
84035 huy hiệu bạc11 huy hiệu đồngApr 13 at 12:51
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
Đ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;
0var 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;
3Tô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;
4Biể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
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