求指定范围内的随机小数 本帖最后由 diypyh 于 2013-05-19 14:57:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 曲线救国package com.csdn;import java.util.Random;public class Float { Random r1 = new Random(); Random r2 = new Random(); public float generateFloat() { float f1 = r1.nextFloat(); int i = r2.nextInt(3); float f2 = f1 + i; if(f2 >= 1.22 && f2 <= 2.56) return f2; else return generateFloat(); } public static void main(String[] args) { Float f = new Float(); long t1 = System.currentTimeMillis(); System.out.println(f.generateFloat()); long t2 = System.currentTimeMillis(); System.out.println("It takes " + (t2 - t1) + " ms"); }} public class Float { public static float generateFloat1() { Random random = new Random(); float add=(float) (random.nextFloat()*1.34);//1.22-2.56之间的增量。增量的随机数范围在0~1.34之间 float randomFloat=(float) (add+1.22);//增量加上1.22以后整个区间的范围在1.22~2.56之间。 return randomFloat; } public static void main(String[] args) { long t1 = System.currentTimeMillis(); System.out.println(generateFloat1()); long t2 = System.currentTimeMillis(); System.out.println("It takes " + (t2 - t1) + " ms"); } } http://blog.sina.com.cn/s/blog_4f925fc30100uvur.html 我是采用BigDecimal,另外还可以采用new DecimalFormat("##0.00"); 不过转换后的是string,还需要转换package j2se_519;import java.math.BigDecimal;/** * 求1.22~2.56之间的随机小数(精确到小数点后2位) * * @author 王二麻子 */public class RandomDemo1 { public static void main(String[] args) { double d = 1.22 + Math.random() * (2.56 - 1.22); BigDecimal b = new BigDecimal(d); float f = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); System.out.println(f); }} 请问怎样通过socker接口发送图片 无法退出窗口 进度条的问题··· 2000元求购一程序!!高手请进 再问JAVA操作MySQL数据库的乱码问题 JNI中遇到更多问题,请前辈指教 我是菜鸟,我写的程序不出结果为什么 今日升星,散分500!--分五天结贴!每日凌晨零点结分。 虚心请教,Java中的接口(interface)的使用?如果我要实现一个接口,是否要把各个接口中的所有方法都重写一遍呢? 帮帮我吧! NegativeArraySizeException 前辈高手们!快快进来!帮帮小辈我答疑解惑一下吧!
package com.csdn;import java.util.Random;public class Float {
Random r1 = new Random();
Random r2 = new Random();
public float generateFloat()
{
float f1 = r1.nextFloat();
int i = r2.nextInt(3);
float f2 = f1 + i;
if(f2 >= 1.22 && f2 <= 2.56)
return f2;
else
return generateFloat();
}
public static void main(String[] args) {
Float f = new Float();
long t1 = System.currentTimeMillis();
System.out.println(f.generateFloat());
long t2 = System.currentTimeMillis();
System.out.println("It takes " + (t2 - t1) + " ms");
}}
public static float generateFloat1()
{
Random random = new Random();
float add=(float) (random.nextFloat()*1.34);//1.22-2.56之间的增量。增量的随机数范围在0~1.34之间
float randomFloat=(float) (add+1.22);//增量加上1.22以后整个区间的范围在1.22~2.56之间。
return randomFloat;
}
public static void main(String[] args) {
long t1 = System.currentTimeMillis();
System.out.println(generateFloat1());
long t2 = System.currentTimeMillis();
System.out.println("It takes " + (t2 - t1) + " ms");
}
}
package j2se_519;import java.math.BigDecimal;/**
* 求1.22~2.56之间的随机小数(精确到小数点后2位)
*
* @author 王二麻子
*/
public class RandomDemo1 {
public static void main(String[] args) {
double d = 1.22 + Math.random() * (2.56 - 1.22);
BigDecimal b = new BigDecimal(d);
float f = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
System.out.println(f);
}}