web-dev-qa-db-ja.com

dartの通貨形式

C#では、次のことができます。

12341.4.ToString("##,#0.00")

結果は12,345.40です

Dartで同等のものは何ですか?

25
user2070369

私も解決策を見つけたかったし、次の例のように実装されていることがわかりました。

import 'package:intl/intl.Dart';

final oCcy = new NumberFormat("#,##0.00", "en_US");

void main () {

  print("Eg. 1: ${oCcy.format(123456789.75)}");
  print("Eg. 2: ${oCcy.format(.7)}");
  print("Eg. 3: ${oCcy.format(12345678975/100)}");
  print("Eg. 4: ${oCcy.format(int.parse('12345678975')/100)}");
  print("Eg. 5: ${oCcy.format(double.parse('123456789.75'))}");

/* Output :  

Eg. 1: 123,456,789.75
Eg. 2: 0.70
Eg. 3: 123,456,789.75
Eg. 4: 123,456,789.75
Eg. 5: 123,456,789.75


 pubspec.yaml :

  name: testCcy002
  version: 0.0.1
  author: BOH
  description: Test Currency Format from intl.
  dev_dependencies:
    intl: any

   Run pub install to install "intl"  
*/
}
35
Brian Oh

以下は、フラッター実装の例です。

import 'package:intl/intl.Dart';

final formatCurrency = new NumberFormat.simpleCurrency();

new Expanded(
            child: new Center(
                child: new Text('${formatCurrency.format(_moneyCounter)}',
                  style: new TextStyle(
                    color: Colors.greenAccent,
                    fontSize: 46.9,
                    fontWeight: FontWeight.w800)))),

たとえば、$#、###。##または$ 4,100.00になります。

Text( '$ {...の$は、' '内の変数_moneyCounterを参照するためだけのものであり、フォーマットされた結果に追加される$とは関係がないことに注意してください。

10
Richard Morgan

通貨記号を印刷したくない場合:

import 'package:intl/intl.Dart';

var noSimbolInUSFormat = new NumberFormat.currency(locale: "en_US",
      symbol: "");
1