5

以下のすべての数値を解析できる既存のソリューションはありますか?

"300.00"
"2.300,00"
"2,300.00"
4

1 に答える 1

6

money宝石を使ってみてください:

$ gem install money

次に、次のことができます。

require 'money'

test1 = Money.parse("300.00")
test2 = Money.parse("2.300,00")
test3 = Money.parse("2,300.00")

test1.currency # #<Money::Currency id: usd, priority: 1, symbol_first: true, thousands_separator: ,, html_entity: $, decimal_mark: ., name: United States Dollar, symbol: $, subunit_to_unit: 100, iso_code: USD, iso_numeric: 840, subunit: Cent>
test1.amount # 300.0
test1.dollars # 300.0
test1.cents # 30000
test1.currency_as_string # USD
test1.separator # .
test1.thousands_separator # ,
test1.delimiter # ,

編集:古いmoney宝石は2つの部分に分かれています:moneymonetize。新しいmoneyクラスは、オブジェクト間の通貨の作成、操作、および変換のみを処理しmoneyます。

moneyオブジェクト(文字列を含む)をオブジェクトに解析するには、代わりにgemを使用する必要があります。monetize

$ gem install monetize

Monetize.parse("USD 100")
Monetize.parse("£100")
Monetize.parse_collection("€80, $100")
于 2013-01-29T00:19:02.020 に答える