Flutter开发中计算double类型数值时如何避免生成负数值
Dart 浮点计算结果强制输出正数解决方案
要让计算得到的double类型值强制为正,直接调用Dart核心库自带的abs()方法获取计算结果的绝对值即可,无需修改原有计算逻辑,直接在计算表达式末尾追加方法调用就行。
修改后的完整代码如下:
double totTax = (double.parse(nontax_amt) - double.parse(tax)).abs(); String tottax = totTax.toString(); double igst = (double.parse(igstper) / 100 * double.parse(tottax)).abs(); double cAmt = (double.parse(widget.itemDetailsList[position].cgstRate) / 100 * double.parse(tottax)).abs(); double total = totTax + igst + cAmt; // 注意原代码此处存在变量名笔误:原代码写的是tot.toString(),实际声明的变量名为total String totamt = total.toString();
补充说明:
- 如果你不需要中间变量全为正,仅需要最终的total为正,也可以只在total的计算表达式末尾加
abs(),即double total = (totTax + igst + cAmt).abs();,可根据业务需求灵活调整abs()的作用范围 abs()是num类型的原生方法,无额外依赖,性能开销可以忽略,通用适配所有浮点负数处理场景
内容的提问来源于stack exchange,提问作者Vishali
相关产品推荐
相关产品推荐

