我有一个文本框,其中将有一个货币字符串,然后我需要将该字符串转换为double来执行一些操作。
$1,100.00→1100.00
这需要发生在所有客户端。我别无选择,只能将货币字符串作为货币字符串作为输入,但需要将其强制转换/转换为double以允许一些数学操作。
我有一个文本框,其中将有一个货币字符串,然后我需要将该字符串转换为double来执行一些操作。
$1,100.00→1100.00
这需要发生在所有客户端。我别无选择,只能将货币字符串作为货币字符串作为输入,但需要将其强制转换/转换为double以允许一些数学操作。
当前回答
我知道你已经找到了解决你的问题的方法,我只是想建议你看看以下更广泛的jQuery国际数字格式插件:
国际号码格式化程序
其他回答
删除所有非点/数字:
var currency = "-$4,400.50";
var number = Number(currency.replace(/[^0-9.-]+/g,""));
你可以试试这个
var str = “$1,112.12”; str = str.replace(“,”, “”); str = str.replace(“$”, “”); console.log(parseFloat(str));
简单地说
Number(currency.replace(/[^0-9-]+/g,""))/100;
适用于所有货币和地区。替换所有非数字字符(您可以有€50.000,00或$50,000.00)输入必须有2位小数
let thousands_seps = '.';
let decimal_sep = ',';
let sanitizeValue = "R$ 2.530,55".replace(thousands_seps,'')
.replace(decimal_sep,'.')
.replace(/[^0-9.-]+/, '');
// Converting to float
// Result 2530.55
let stringToFloat = parseFloat(sanitizeValue);
// Formatting for currency: "R$ 2.530,55"
// BRL in this case
let floatTocurrency = Number(stringToFloat).toLocaleString('pt-BR', {style: 'currency', currency: 'BRL'});
// Output
console.log(stringToFloat, floatTocurrency);
我知道这是一个老问题,但我想提供一个额外的选项。
jQuery Globalize提供了将特定于区域性的格式解析为float的能力。
https://github.com/jquery/globalize
给定字符串"$13,042.00",Globalize设置为en-US:
Globalize.culture("en-US");
你可以像这样解析float值:
var result = Globalize.parseFloat(Globalize.format("$13,042.00", "c"));
这将给你:
13042.00
并且允许你与其他文化一起工作。