我想使用 Java 随机生成 0 到 2.10 范围内的价格。我希望价格的格式为 0.00、0.10、0.20、0.30、0.40、0.50 .... 1.10、1.20 一直到 2.10。我的代码如下:
private static DecimalFormat df2 = new DecimalFormat(".##");
double min = 0;
double max = 2.10;
double diff = max - min;
double randomValue = min + Math.random( ) * diff;
System.out.println(df2.format(randomValue));
但是,它打印了 .06、1.0、.99、.02 等值。无论如何要格式化它吗?
正如我在评论中所述,通过将 randomValue 结果乘以 10,然后对其应用 Math.floor(),然后最后将上一步中获得的结果相除,这很容易实现。
注意:(在评论部分,我的手指在最后输入了一个额外的 0!不过我已经删除了评论)
工作代码将是:
// use the correct pattern #0.00
DecimalFormat formatter = new DecimalFormat("#0.00"); // edited here.
double randomValue = min + Math.random( ) * diff;
double tempRes = Math.floor(randomValue * 10);
double finalRes = tempRes/10;
System.out.println(formatter.format(finalRes));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句