【问题标题】:Dart double issue飞镖双问题
【发布时间】:2022-11-02 03:17:57
【问题描述】:

飞镖无法将 14.99942 更改为 14.99; toStringAsFixed() 无法正常工作。 例子:

(179.99 / 12.00).toStringAsFixed(2)

预期结果:14.99

实际结果:15.00

【问题讨论】:

  • 您是否尝试过 (179.99 / 12.00).toStringAsFixed(3)?然后你会得到 14.999。 toStringAsFixed() 正在四舍五入。
  • 我不想得到 14.999,我只需要小数点后的两个数字:14.99
  • 好像是把数字四舍五入

标签: flutter dart


【解决方案1】:

一种可能的解决方法是定义您自己的方法。

String toFixedString(double nr){
  String n=nr.toString();
  final pos=n.indexOf('.');
  return n.substring(0,pos+3);
}

【讨论】:

    【解决方案2】:

    试试这个扩展

    extension NumberExtension on num {
      String toStringAsFixedWithoutRound(int n) {
        final r = toString().split(".");
        return "${r.first}.${r.last.substring(0, n)}";
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      相关资源
      最近更新 更多