飞镖货币格式

use*_*369 18 formatting dart

在C#我可以这样做:

12341.4.ToString("##,#0.00")
Run Code Online (Sandbox Code Playgroud)

结果是12,345.40

飞镖的等价物是什么?

Bri*_* Oh 25

我也想找到解决方案,并发现它现在按照以下示例实现.

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"  
*/
}
Run Code Online (Sandbox Code Playgroud)

  • 这很有效,甚至比同样可用的 `NumberFormat.currencyPattern()` 格式化程序更好。 (2认同)

rub*_*low 12

如果您不想打印货币符号:

import 'package:intl/intl.dart';

var noSimbolInUSFormat = new NumberFormat.currency(locale: "en_US",
      symbol: "");
Run Code Online (Sandbox Code Playgroud)


小智 7

这是一个flutter实现的示例:

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)))),
Run Code Online (Sandbox Code Playgroud)

例如,结果为$#,###。##或$ 4,100.00。

请注意,Text('$ {...)中的$只是引用''中的_moneyCounter变量,与添加到格式化结果中的$没有任何关系。

  • INR怎么办? (4认同)

Bre*_*ton 6

我是飞镖包money2的作者

https://pub.dev/packages/money2

该软件包支持固定精度的数学运算、货币的格式化和解析。

import 'money2.dart';

Currency usdCurrency = Currency.create('USD', 2);

// Create money from an int.
Money costPrice = Money.fromInt(1000, usdCurrency);
print(costPrice.toString());
  > $10.00

final taxInclusive = costPrice * 1.1;
print(taxInclusive.toString())
  > $11.00

print(taxInclusive.format('SCC #.00'));
  > $US 11.00

// Create money from an String using the `Currency` instance.
Money parsed = usdCurrency.parse(r'$10.00');
print(parsed.format('SCCC 0.0'));
  > $USD 10.00

// Create money from an int which contains the MajorUnit (e.g dollars)
Money buyPrice = Money.from(10);
print(buyPrice.toString());
  > $10.00

// Create money from a double which contains Major and Minor units (e.g. dollars and cents)
// We don't recommend transporting money as a double as you will get rounding errors.
Money sellPrice = Money.from(10.50);
print(sellPrice.toString());
  > $10.50
Run Code Online (Sandbox Code Playgroud)


小智 6

var number = 10000;

final NumberFormat usCurrency = NumberFormat('#,##0', 'en_US');

print(' \$${usCurrency.format(number))}');
Run Code Online (Sandbox Code Playgroud)

--$10,000

如果你想在数字末尾写分:

final NumberFormat usCurrency = NumberFormat('#,##0.00', 'en_US');
Run Code Online (Sandbox Code Playgroud)

--$10,000.00


小智 5

我用它。它对我有用

class MoneyFormat {
 String price;

 String moneyFormat(String price) {
  if (price.length > 2) {
  var value = price;
  value = value.replaceAll(RegExp(r'\D'), '');
  value = value.replaceAll(RegExp(r'\B(?=(\d{3})+(?!\d))'), ',');
  return value;
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

并在 TextFormField 中

onChanged: (text) {
 priceController.text = moneyFormat.moneyFormat(priceController.text);
}
Run Code Online (Sandbox Code Playgroud)