生成随机浮动,包括两个边界

hsn*_*nsd 5 java random

我需要生成范围内的随机实数[-0.5, 0.5]包括两个边界

我发现了产生相似范围的各种方法,例如

-0.5 + Math.random()
Run Code Online (Sandbox Code Playgroud)

但是上限始终是排他性的,我也需要包含性。0.5必须在范围内。

OH *_*ERS 8

实现此目的的一种方法是创建int-500至500的随机数,然后将其除以1000。

int max = 500;
int min = -500;
int randomInt = rand.nextInt((max - min) + 1) + min;
float randomNum = randomInt / 1000.00f;
System.out.println(randomNum);
Run Code Online (Sandbox Code Playgroud)

您可以通过在整数边界和除数中添加和删除零来更改精度。(例如:创建从-5到+5的整数,然后除以10以降低精度)

该解决方案的缺点是它不使用浮点/双精度数据类型提供的最大精度。