有没有办法用NumberFormat来显示:

  • 如果双精度值为15.00,则为"15"
  • 如果双精度值为15.50,则为‘15.50

谢谢你的帮助.

推荐答案

实际上,我认为用truncateToDouble()toStringAsFixed()比较容易,而不用NumberFormat:

n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 2);

例如:

main() {
  double n1 = 15.00;
  double n2 = 15.50;

  print(format(n1));
  print(format(n2));
}

String format(double n) {
  return n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 2);
}

打印到控制台:

15
15.50

Dart相关问答推荐

在Dart中进行系统调用?

Card宽度与父级匹配

日期时间时区反序列化

VSCode Flutter Dart 启动慢的建议

Flutter.io (dart) - 如何创建左填充覆盖?

你如何在 Polymer 中调度和监听自定义事件?

Flutter中包导入和普通导入有什么区别?

Dart 包 - 如何隐藏内部方法和类?

Flatter有数据绑定吗?

什么是NoSuchMethod错误,如何修复?

Flutter Text 小部件中的 StrutStyle 是什么

Flutter中不能指定MultiPartFile的内容类型

Flutter: shared preferences

如何判断switch/case中对象的类型?

如何在 Dart 中将字符串转换为 utf8?

Dart 中的snapshot快照概念是什么?

Dart 中的构造函数和初始化列表有什么区别?

如何使用 Dart 列出目录的内容?

如何将 `ByteData` 实例写入 Dart 中的文件?

如何在 Dart 中运行重复出现的函数?