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

Dart报错未为类型'Double'定义运算符'/',该怎么解决?

报错原因

错误标识:dart(undefined_operator)
错误信息:未为类型'Double'定义运算符'/',请尝试定义'/'运算符

该报错出现在代码Text("\$${product.price! / 100}"...)行,核心原因如下:
Dart语言内置的浮点数类型为小写开头的double,你代码中product.price的类型是大写开头的自定义Double类,该类没有实现除法/运算符的重载,因此无法直接执行除法运算。

修复方案
  • 方案1:转换为内置数值类型后运算
    绝大多数自定义Double包装类都会提供转内置double的方法,直接调用后再做除法即可,修改后代码如下:
    Padding(
      padding: const EdgeInsets.only(right: 8.0),
      child: Text("\$${product.price!.toDouble() / 100}", style: TextStyle(
      fontWeight: FontWeight.bold,
    
    部分自定义Double类可能是通过value属性存储原始数值,可替换为product.price!.value / 100使用。
  • 方案2:为自定义Double类重载/运算符
    如果你需要保留Double自定义类型的用法,可以在该类的定义中添加运算符重载逻辑:
    class Double {
      final double _value;
      const Double(this._value);
      
      // 重载除法运算符
      double operator /(num divisor) => _value / divisor;
    }
    
    重载完成后不需要修改原有运算代码即可正常运行。
  • 方案3:替换为Dart内置double类型
    如果是定义Product数据模型时误写了类型,直接把price字段的类型从自定义Double改为Dart内置的double即可,无需修改后续运算代码。

内容的提问来源于stack exchange,提问作者user17006689

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:09:04