dart 如何在flutter的Numberformat. compactCurrency中强制小数?

emeijp43  于 11个月前  发布在  Flutter
关注(0)|答案(1)|浏览(109)

我想得到一个人类的综合货币价值。
如果值为100000,则返回100 K,如果值为100500,则返回101 K,如果我想获得100.5K,则返回101 K
请注意,我使用intl数字格式,因为我希望能够在区域设置中发送,并获得不同区域的点和逗号的正确解析
下面是我正在运行的代码片段:

double amount = 100500;
  String currency = "EUR";
  String locale = "en-US";

  NumberFormat.compactCurrency(
    locale: locale,
    name: currency,
    symbol: "",
    decimalDigits: 1,
  ).format(amount);

字符串
似乎调用compactCurrency基本上是将数字压缩为3个字符的字符串,因此它会对值进行最大化/最小化,而不是显示与之对应的小数
有没有解决这个问题的方法?我看到过创建一个新的语言环境设置的选项,但这并不是一个真正优雅的解决方案,因为这是用来显示每个语言环境的不同模式,并且必须维护分隔符逻辑和所有内容。

jgwigjjp

jgwigjjp1#

设置属性maximumFractionDigits可以实现以下功能:

double amount = 100500;
  String currency = "EUR";
  String locale = "en-US";

  (NumberFormat.compactCurrency(
      locale: locale,
      name: currency,
      symbol: "",
      decimalDigits: 1,
    )..maximumFractionDigits = 1)
        .format(amount);
// = '100.5K'

字符串

相关问题