飞镖范围内的随机双倍生成

时间:2019-12-05 09:14:45

标签: flutter dart

需要在一个范围内生成随机双打

nextint()函数采用参数最大值,而nextdouble()不采用任何参数。 还有其他方法可以在dart范围内返回随机双精度吗?

3 个答案:

答案 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));
}}