需要在一个范围内生成随机双打
nextint()
函数采用参数最大值,而nextdouble()
不采用任何参数。
还有其他方法可以在dart范围内返回随机双精度吗?
答案 0 :(得分:2)
没有,没有,但是很容易重新创建它,因为nextInt
仅采用max
值(不包括)。
nextDouble() * max
答案 1 :(得分:2)
nextDouble
返回0到1之间的值(不包括在内)。因此,如果您想要一个介于a
(包括)到b
(不包括)之间的数字,则可以执行以下操作:
double doubleInRange(Random source, int start, int end) =>
source.nextDouble() * (end - start) + start;
print(doubleInRange(random, a, b));
答案 2 :(得分:1)
我怀疑那里。如果只需要双精度值,可以将整数转换为双精度值
import 'dart:math';
main() {
var rng = new Random();
for (var i = 0; i < 10; i++) {
print(rng.nextInt(100).toDouble());
}}
如果您想要由nextDouble()生成的双精度值类型,例如'0.2502033576383784',我建议您创建一个函数来处理值的范围。
import 'dart:math';
main() {
var rng = new Random();
for (var i = 0; i < 10; i++) {
print(rng.nextDouble()+rng.nextInt(50));
}}