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

Flutter如何生成指定范围内步长0.05的连续Double类型列表

在Flutter中生成指定范围和步长的Double列表

要生成0.50到0.80之间、以0.05为增量的连续Double列表,这里提供两种实用的实现方式:

方法一:基础循环构建

通过循环逐步累加步长,直到达到目标结束值,同时处理浮点数精度问题(避免出现类似0.5999999999999999的异常值):

List<double> generateTargetList() {
  final List<double> result = [];
  double currentValue = 0.50;
  final double endValue = 0.80;
  final double step = 0.05;

  while (currentValue <= endValue) {
    // 保留两位小数后转成Double,确保数值符合预期
    result.add(double.parse(currentValue.toStringAsFixed(2)));
    currentValue += step;
  }

  return result;
}

调用这个方法就能得到你需要的[0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80]列表。

方法二:使用List.generate简化实现

先计算出需要生成的元素总数,再通过List.generate批量生成每个元素,同样处理精度问题:

// 定义参数
final double start = 0.50;
final double end = 0.80;
final double step = 0.05;

// 计算元素个数:(结束值-起始值)/步长 取整后加1
int itemCount = ((end - start) / step).floor() + 1;

// 生成列表
final List<double> targetList = List.generate(itemCount, (index) {
  double rawValue = start + (index * step);
  return double.parse(rawValue.toStringAsFixed(2));
});

注意事项

浮点数的加减运算可能存在精度误差,比如多次累加0.05后,可能出现0.5999999999999999这类不符合预期的数值,所以建议通过toStringAsFixed(2)处理后再转回Double,保证数值的准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 19:50:58