java 生成包含上下限的随机小数 java生成随机float型数 小于1000 保留到小数点后...

java\u751f\u6210\u4e00\u4e2a\u968f\u673a\u5c0f\u6570

package \u8ba1\u7b97\u03c0\u7684\u8fd1\u4f3c\u503c;
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("\u8bf7\u8f93\u5165\u7cbe\u5ea6\uff1a");
double z=scan.nextDouble();
System.out.println("\u5728\u7cbe\u5ea6\u4e3a"+z+"\u7684\u6761\u4ef6\u4e0b\uff0c\u03c0\u7ea6\u7b49\u4e8e\uff1a\n"+jishuPI(z));

}
static double jishuPI(double z){
double sum=2;
int n=1;
int m=3;
double t=2;
while(t>z){
t=t*n/m;
sum=sum+t;
n++;
m+=2;



}
return sum;
}

}

import java.text.DecimalFormat;
import java.util.Random;

public class Test {

public static void main(String[] args) {

DecimalFormat dcmFmt = new DecimalFormat("0.00");
Random rand = new Random();

float f = rand.nextFloat() * 1000;
System.out.println(dcmFmt.format(f));
}

}
----------------
657.28

我通常会使用

Math.random();
这个方法返回一个double, 取值是【0,1) 含前不含后
用这个加以变通,可以得到任何你想要的数值
(0,12】 这个稍微有点难,难点在于这里生成的数字 含后不含前
假如我简单的将 Math.random() *12; 得到的是 【0,12) 是0-12 含前不含后 的范围
所以想一步到位,确实有点难度
如果这是一个数学问题,我想从【0,12) 编成 (0,12】 会更加困难。
好在,计算机的数据表示是有位数限制的
比如你试着用 1-0.000000000000000000000000000000000000001. 得到的会是1.
因为由于精度原因,其实计算机表示不了很精确的小数的
所以 假如给 【0,12) 加上一个计算机能表示的最小的小数,其实就能达到(0,12】的目的
比如说:
Math.random() + 0.000 000 000 000 0001;// 16位小数

double r = (random.nextInt(1201))/100.00;
这个是保留两位小数的。
double r = (random.nextInt(12001))/1000.000;
这个是保留三位的。只是觉得这样做应该可以,有不对的请指正

mach.random()*12

RPRPRPRPRPRPRPRPRPRPRPRPRPRPRPR

mach.random()*12
0-12随即

扩展阅读:java入门网站 ... java reactor ... java代码生成器 ... java高并发解决方案 ... javascript入门 ... 2%5取模 ... 二分查找代码实现java ... java生成 exe ... java 生成四位随机数 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网