首页 > 解决方案 > 当我期望 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

标签: flutterdart

解决方案


正如克里斯托弗所提到的,你将它解析回双精度,所以它永远不会是0.00. 在这种情况下,值是双精度,最后一个数字对于任何操作都是无用的,它只会占用更多的内存,所以 Dart 不会存储它。

要保留它,唯一的方法是作为字符串,所以这必须是你的代码:

double tips = cart['tips_percent'] * subTotal;
print(tips.toStringAsFixed(2));

推荐阅读