You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:39:01