flutter - 当我期望 0.00 时,Dart 四舍五入值给出 0.0
问题描述
我有以下代码,我希望提示0.00
在运行结束时。然而它是0.0
。
print("cart['tips_percent']");
print(cart['tips_percent']);
print ("subTotal");
print (subTotal);
double tips = cart['tips_percent'] * subTotal;
tips = num.parse(tips.toStringAsFixed(2));
print(tips);
日志给出
I/flutter (31838): cart['tips_percent']
I/flutter (31838): 0.0
I/flutter (31838): subTotal
I/flutter (31838): 95.92
I/flutter (31838): 0.0
解决方案
正如克里斯托弗所提到的,你将它解析回双精度,所以它永远不会是0.00
. 在这种情况下,值是双精度,最后一个数字对于任何操作都是无用的,它只会占用更多的内存,所以 Dart 不会存储它。
要保留它,唯一的方法是作为字符串,所以这必须是你的代码:
double tips = cart['tips_percent'] * subTotal;
print(tips.toStringAsFixed(2));
推荐阅读
- python - 如何让 scikit learn 机器学习模型结果可重现
- reactjs - 出现错误:反应 js 中的挂钩调用无效
- javascript - 如何从其他类调用方法
- meteor - 在服务器重新启动时重新启动流星 js 应用程序进程(永久进程)
- python - 如何在不缩小 Python 中的 X 或 Y 轴的情况下将 Cos 函数拟合到整数列表?
- gis - 重命名现有 shapefile 中的地区
- c# - 具有多个目标依赖项的 NuGet 包
- python - 六组组合数(列表)
- php - 分页无法正常工作(php/ajax)
- c++ - 将代码从 C++11 转换为 C++98 的策略?