我有一个文本框,其中将有一个货币字符串,然后我需要将该字符串转换为double来执行一些操作。

$1,100.00→1100.00

这需要发生在所有客户端。我别无选择,只能将货币字符串作为货币字符串作为输入,但需要将其强制转换/转换为double以允许一些数学操作。


当前回答

这是一个简单的函数

函数getNumberFromCurrency(currency) { 返回(currency.replace数量(/,美元/ g, ")) } console.log(getNumberFromCurrency('$1,000,000.99')) // 1000000.99

其他回答

这个例子运行正常

Var货币= "$1,123,456.00"; var =数量数量(currency.replace (/ [^ 0 - 9 \] + / g, " ")); console.log(数量);

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

使用正则表达式删除格式(美元和逗号),并使用parseFloat将字符串转换为浮点数。

var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
jQuery.preferCulture("en-IN");
var price = jQuery.format(39.00, "c");

输出为:39.00卢比

use jquery.glob.js,
    jQuery.glob.all.js

对于任何想在2021年找到解决方案的人,你都可以使用Currency.js。

经过大量研究,这是我在生产中发现的最可靠的方法,到目前为止我还没有遇到任何问题。此外,它在Github上非常活跃。

currency(123);      // 123.00
currency(1.23);     // 1.23
currency("1.23")    // 1.23
currency("$12.30")  // 12.30

var value = currency("123.45");
currency(value);    // 123.45

打印稿

import currency from "currency.js";

currency("$12.30").value;    // 12.30