在Dart中如何将双精度浮点数保留两位小数?

7

我写了一个方法,用于执行功能和计算,但某些计算需要返回小数点后超过10位的数字。如何使这段代码只显示2到3位小数?

getProductPrice(int productID) {
    var cart = cartlist.firstWhere((cart) => cart.product.id == productID,
        orElse: () => null);
    if (cart != null) {
      var price= (cart.count)*(cart.product.price);
      return price;
      notifyListeners();
    } else {
      return 0.0;
    }
  }

请查看 double.toStringAs*() 方法。 - pskink
1个回答

11

你可以使用String toStringAsFixed(int fractionDigits)

  • 返回该数字的小数点表示字符串。

  • 在计算字符串表示之前将this转换为双精度浮点数。

  • 如果this的绝对值大于或等于10^21,则此方法返回由this.toStringAsExponential()计算的指数表示。否则,结果是具有恰好fractionDigits个小数点后的最接近的字符串表示。如果fractionDigits等于0,则省略小数点。

  • 参数fractionDigits必须是一个整数,满足条件:0 <= fractionDigits <= 20。

示例:

1.toStringAsFixed(3);  // 1.000
(4321.12345678).toStringAsFixed(3);  // 4321.123
(4321.12345678).toStringAsFixed(5);  // 4321.12346
123456789012345678901.toStringAsFixed(3);  // 123456789012345683968.000
1000000000000000000000.toStringAsFixed(3); // 1e+21
5.25.toStringAsFixed(0); // 5

了解更多信息,请查看官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接