flutter - 如何在飞镖中将双精度值四舍五入到小数点后两位?
问题描述
我已经制作了这个方法,该方法被调用来执行功能并进行计算,但对于某些超过 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;
}
}
解决方案
您可以使用String toStringAsFixed(int fractionDigits)
返回 this 的小数点字符串表示形式。
在计算字符串表示之前转换
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
有关更多信息,请查看官方文档。
推荐阅读
- c - 如何跳转到返回值的宏/函数内的标签
- ios - 我可以在 ViewDidLoad 中加载 UICollectionView 的数据吗?
- twilio - 从 Twilio 频道中的消息中识别发件人
- html - Bootstrap 导航栏折叠图标不出现
- excel - 如何编写宏来刷新文件夹中所有 Excel 文件的所有数据连接?
- python - 执行多次运行时如何使用 Keras 保留纪元数?
- java - 地图
> 在没有 pre java8 for 循环的情况下创建 - java - 打印根据语言环境翻译的与时间相关的字符串,如“今天”和“昨天”?
- java - 如何解决与在 Debian 8 (Jessie) 上安装 Java 8 相关的问题?
- c++ - 从文件读取到向量