如何在 Dart 中将数字格式化为千位分隔符

Posted

技术标签:

【中文标题】如何在 Dart 中将数字格式化为千位分隔符【英文标题】:How to format numbers as thousands separators in Dart 【发布时间】:2020-10-16 04:50:36 【问题描述】:

我必须在飞镖中将数字格式化为千位分隔符。我有这样的数字:

16987

13876

456786

我想将它们格式化为:

16,987

13,876 

4,56,786

【问题讨论】:

你可以试试NumberFormat from intl package 【参考方案1】:

您可以在 ICU 格式化模式中使用 NumberFormat 传递自定义格式,查看NumberFormat。

import 'package:intl/intl.dart';

void main() 
  var formatter = NumberFormat('#,##,000');
  print(formatter.format(16987));
  print(formatter.format(13876));
  print(formatter.format(456786));

输出

16,987
13,876
4,56,786

【讨论】:

是否可以对字符串做同样的事情?我很难做到这一点。 @ManoHaran 嗨!使用double.tryParse("10000")double.parse("10000"),在此之后只是格式。【参考方案2】:

我发现intl 包中的NumberFormat 类非常有用,因为它提供了不同的数字格式。

默认情况下,NumberFormat 类格式的数字使用默认的美国语言环境,以百万为单位,我们可以使用印度语言环境设置以十万为单位的数字格式(它可以根据任何国家语言环境格式化数字或货币)。NumberFormat.decimalPattern([String locale])

import 'package:intl/intl.dart';   

void main() 
  NumberFormat numberFormat = NumberFormat.decimalPattern('hi');
  print(numberFormat.format(16987));
  print(numberFormat.format(13876));
  print(numberFormat.format(456786));

输出

16,987
13,876
4,56,786

【讨论】:

以上是关于如何在 Dart 中将数字格式化为千位分隔符的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 将数字格式化为字符串 - 使用小数和千位分隔符

将数字格式化为字符串-带小数和千位分隔符

如何将双精度值格式化为点后两位小数且分隔符为千位的字符串?

如何放置千位分隔符“点”

使用千位分隔符格式化 COUNT 结果的更简洁方法?

如何格式化数字来定义千位分隔符?