Flutter/Dart - 将双精度格式格式化为带有千位分隔符和小数点后数字的字符串
Flutter/Dart - Format double to String with thousand separators AND digits after decimal point
我正在尝试从 double 变量获得格式化字符串,它将包含千位分隔符 (",") 并且始终包含小数点后的 2 位数字(即使它为零)。
我已经成功地分别实现了它们,但无法将它们组合在一起实现。
我想要实现的目标示例:
100 => "100.00"
100.5 => "100.50"
1000 = "1,000.00"
1000.5 = > "1,000.50"
1000000 => "1,000,000.00"
1000000.53 => 1,000,000.53
etc...
我尝试使用以下方法实现此目的:
NumberFormat.decimalPattern('en').format(
double.parse(
myDoubleVar.toStringAsFixed(2),
),
);
但如果小数点为零,它不会给出我的小数点。
有谁知道我怎样才能做到这一点?
谢谢
这里我是这样用的
void main() {
num balance = 120000;
print("$${balance.toStringAsFixed(2).replaceAllMapped(RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => "${m[1]},") }");
}
试试这个
double amount = 1000000;
NumberFormat numberFormat = NumberFormat("#,##0.00", "en_US");
print('${(numberFormat.format(amount))}');
输出:
1,000,000.00
我正在尝试从 double 变量获得格式化字符串,它将包含千位分隔符 (",") 并且始终包含小数点后的 2 位数字(即使它为零)。
我已经成功地分别实现了它们,但无法将它们组合在一起实现。
我想要实现的目标示例:
100 => "100.00"
100.5 => "100.50"
1000 = "1,000.00"
1000.5 = > "1,000.50"
1000000 => "1,000,000.00"
1000000.53 => 1,000,000.53
etc...
我尝试使用以下方法实现此目的:
NumberFormat.decimalPattern('en').format(
double.parse(
myDoubleVar.toStringAsFixed(2),
),
);
但如果小数点为零,它不会给出我的小数点。
有谁知道我怎样才能做到这一点?
谢谢
这里我是这样用的
void main() {
num balance = 120000;
print("$${balance.toStringAsFixed(2).replaceAllMapped(RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => "${m[1]},") }");
}
试试这个
double amount = 1000000;
NumberFormat numberFormat = NumberFormat("#,##0.00", "en_US");
print('${(numberFormat.format(amount))}');
输出: 1,000,000.00