📜  java random threadlocalrandom double with 2 个小数位 - Java (1)

📅  最后修改于: 2023-12-03 14:42:15.836000             🧑  作者: Mango

Java中使用Random和ThreadLocalRandom产生保留两位小数的随机双精度浮点数

本文介绍Java中使用Random和ThreadLocalRandom类产生保留两位小数的随机双精度浮点数。

使用java.util.Random

在Java中,可以使用java.util.Random类来产生随机数。Random类提供了一系列的方法来生成不同类型的随机数,包括整数、长整数、浮点数等。下面的示例代码展示了如何使用Random类生成保留两位小数的随机双精度浮点数:

import java.util.Random;

public class RandomDemo {
  public static void main(String[] args) {
    Random random = new Random();
    double num = Math.round(random.nextDouble() * 100) / 100.0; // 生成保留两位小数的随机双精度浮点数
    System.out.println(num);
  }
}

代码输出示例:

0.55

代码解释:

  1. 通过 new Random() 创建一个 Random 的实例。
  2. 使用 random.nextDouble() 产生一个 [0.0, 1.0) 之间的随机浮点数。
  3. 将该随机浮点数乘以100并四舍五入,再除以100得到保留两位小数的浮点数。
使用java.util.concurrent.ThreadLocalRandom

Java 7引入了一个新的类 ThreadLocalRandom,它是 Random 的一个线程本地化版本。该类提供了更好的并发性能,并且可以生成高质量的伪随机数。下面的示例代码展示了如何使用ThreadLocalRandom类生成保留两位小数的随机双精度浮点数:

import java.util.concurrent.ThreadLocalRandom;

public class ThreadLocalRandomDemo {
  public static void main(String[] args) {
    double num = Math.round(ThreadLocalRandom.current().nextDouble() * 100) / 100.0; // 生成保留两位小数的随机双精度浮点数
    System.out.println(num);
  }
}

代码输出示例:

0.47

代码解释:

  1. 使用 ThreadLocalRandom.current() 获取当前线程的 ThreadLocalRandom 实例。
  2. 使用 nextDouble() 产生一个 [0.0, 1.0) 之间的随机浮点数。
  3. 将该随机浮点数乘以100并四舍五入,再除以100得到保留两位小数的浮点数。

以上示例代码中,数值100为两位小数的位数,如果需要保留更多位数,可以将数值100改为相应的数值。

总结

本文介绍了Java中使用Random和ThreadLocalRandom类产生保留两位小数的随机双精度浮点数的方法。在实际开发中,可以根据需要选择合适的类来生成随机数。同时,可以根据具体的需求进行参数的调整,以生成符合要求的随机数。