2017-01-28 4 views
1

私はドルの文字列形式に変換するtoLocaleString()https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleStringを使用していますが、私は操作を逆にトラブルを抱えています。私の場合は、セントに戻る。ロケール文字列(通貨)を数値に変換する方法は?

dollarString.split('$')[1] * 100はすぐに文字列がその中に,を持っていると台無し。

コンマを削除する文字列を通過するよりも、これを処理するためのより良い方法はありますか?私は他の通貨を使用して終了したらどう

。私は戻って、いくつかのロケールに、その後の数学を行う、とすることができますので、通貨はセント表現には何でもの内外に変換することはできませんか?

+0

'.'次いで' parseFloat'メソッドを使用し、例えば 'VARのC = parseFloatは( "10.33")' –

+0

http://stackoverflow.com/questions/25645163と ''置き換えます/ how-do-i-convert-string-to-number-to-locale-tolocalestri – Kaii

+0

他の値も保存できますか? –

答えて

2

あなたは小数点としてピリオドを使用するロケールであると仮定すると、あなたはこのようなものを使用することができます

var dollarsAsFloat = parseFloat(dollarString.replace(/[^0-9-.]/g, '')); 

を上記の数字と小数点以外のすべてを削除するには、正規表現を使用しています。 parsefloat関数が残りの処理を行います。

注意してください。いくつかの国では、あなたのやり方にカンマと小数点を使用していません!金額を浮動変数に保持し、実際に印刷するときにフォーマットするだけの方がいいでしょう。

1

他の人が示唆したように、あなたは文字列から(,)を削除する必要があります。場合

dollarString.split('$')[1].replace(/\,/g,'') * 100 

は、dollarStringは、あなたは、単にその後、

dollarString.replace(/\,/g,'').split('$')[1] * 100 
1

はEXが分かれすべて(,)を削除することができ、$xx,xxx,xxx$xx,xxx,xxxとしてのみの値があります。私は、ドットとカンマ区切りの後にn桁を使用することを決定した

Object.defineProperties(Number.prototype,{ 
    locale:{ 
     value:function(n){ 
      n = n||2 
      return this.toLocaleString('en', { 
         minimumFractionDigits: n, 
         maximumFractionDigits: n 
      }); 
     } 
    } 
}); 

/逆の文字列から数字/

Object.defineProperties(String.prototype,{ 
    floatLocale:{ 
     value: function(){ 
      return parseFloat(this.replace(/,/g,"")); 
     } 
    } 
}); 

だからv= 1000.33; v === v.locale().floatLocale();

関連する問題