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

Flutter(Dart)如何生成包含1的随机双精度浮点数?

让Dart的Random.nextDouble()取值范围包含1的解决方案

Dart内置的Random.nextDouble()默认返回**[0, 1)区间的浮点数,无法取到1。要让取值范围变为[0, 1]**,可以通过先生成整数再转换为小数的方式实现:

实现思路

生成一个从0到10000的整数(共10001个可能值),对应映射到0.0000到1.0000的小数:

  • 当整数为10000时,直接返回1.0
  • 其他整数则格式化为0.xxxx的字符串后转成浮点数

代码实现

double getRandomDouble(){
  final random = Random();

  int a = random.nextInt(10001); // 生成0到10000的整数
  String stringValue;
  if (a == 10000) {
    stringValue = '1.0';
  } else {
    stringValue = '0.$a';
  }
  return double.parse(stringValue);
}

这样生成的随机数会均匀覆盖从0.0到1.0的区间,包含1这个端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:32:01