How to convert a currency string to a double with jQuery or Javascript?

后端 未结 19 2467
天涯浪人
天涯浪人 2020-11-22 17:30

I have a text box that will have a currency string in it that I then need to convert that string to a double to perform some operations on it.

\"$1,1

相关标签:
19条回答
  • 2020-11-22 17:52

    I know this is an old question but wanted to give an additional option.

    The jQuery Globalize gives the ability to parse a culture specific format to a float.

    https://github.com/jquery/globalize

    Given a string "$13,042.00", and Globalize set to en-US:

    Globalize.culture("en-US");
    

    You can parse the float value out like so:

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

    This will give you:

    13042.00
    

    And allows you to work with other cultures.

    0 讨论(0)
  • 2020-11-22 17:55
    var parseCurrency = function (e) {
        if (typeof (e) === 'number') return e;
        if (typeof (e) === 'string') {
            var str = e.trim();
            var value = Number(e.replace(/[^0-9.-]+/g, ""));
            return str.startsWith('(') && str.endsWith(')') ? -value: value;
        }
    
        return e;
    } 
    
    0 讨论(0)
  • 2020-11-22 17:57

    // "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;
    }
    
    0 讨论(0)
  • 2020-11-22 17:57

    For anyone looking for a solution in 2020 you can use Currency.js.

    After much research this was the most reliable method I found for production, I didn't have any issues so far. In addition it's very active on 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
    
    0 讨论(0)
  • 2020-11-22 17:59

    Remove all non dot / digits:

    var currency = "-$4,400.50";
    var number = Number(currency.replace(/[^0-9.-]+/g,""));
    
    0 讨论(0)
  • 2020-11-22 17:59

    Here's a simple function -

    function getNumberFromCurrency(currency) {
      return Number(currency.replace(/[$,]/g,''))
    }
    
    console.log(getNumberFromCurrency('$1,000,000.99')) // 1000000.99

    0 讨论(0)
提交回复
热议问题