首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drop decimal in java

drop decimal in java
EN

Stack Overflow用户
提问于 2020-07-06 16:07:05
回答 2查看 65关注 0票数 0
代码语言:javascript
复制
public class Main {

    public static void main(String[] args) {
        generateRandomNumber();

    }

    public static void generateRandomNumber(){

        double[] insideArray = new double[5];

        for(int i=0; i<insideArray.length; i++) {
            double value = (Math.random()+1)*10;
            insideArray[i] = value;
            String.format("%.2f", insideArray[i]);
        }
        System.out.println("Displaying random generated Array: " + Arrays.toString(insideArray));

    }

}

我尝试生成5个随机数并存储到一个数组中。我想要格式化小数到2个数字。我尝试了"String.format()“方法,但不起作用。尽管如此,我还是得到了两个: 10.xxxxxxxxxxx。

如何格式化它,如ex: 10.xx?

EN

回答 2

Stack Overflow用户

发布于 2020-07-06 16:29:27

String.format(String, double);返回格式化的字符串。它不会更改您想要格式化的对象。

换句话说:在调用String.format之后,insideArray[i]仍然是一个未四舍五入的双精度数。

解决问题的最简单方法是将String.format的结果存储在数组中。但是结果是一个String,而数组是一个double数组。这些类型不匹配。

您可以声明第二个数组来存储字符串,或者简单地更改insideArray的类型,因为您似乎不需要对它的元素做任何进一步的处理。

解决方案A:

代码语言:javascript
复制
double[] insideArray = new double[5];
String[] myStringArray = new String[5];

for(int i=0; i<insideArray.length; i++) {
    double value = (Math.random()+1)*10;
    insideArray[i] = value;
    myStringArray[i] = String.format("%.2f", insideArray[i]);
}
System.out.println("Displaying random generated Array: " + Arrays.toString(myStringArray));

解决方案B:

代码语言:javascript
复制
String[] insideArray = new String[5];

for(int i=0; i<insideArray.length; i++) {
    double value = (Math.random()+1)*10;
    insideArray[i] =String.format("%.2f", value);
}
System.out.println("Displaying random generated Array: " + Arrays.toString(insideArray));
票数 2
EN

Stack Overflow用户

发布于 2020-07-06 17:35:48

打印双精度变量时,不能总是将其限制为2位十进制数字。要么使用BigDecimal,要么以字符串的形式存储。

代码语言:javascript
复制
 public static void generateRandomNumber(){
        String [] insideArray = new String[5];   // double array to string array    
            for(int i=0; i<insideArray.length; i++) {
                double value = (Math.random()+1)*10;               
                insideArray[i] = String.format("%.2f", value);  // store the converted number in the form of string.            
            }
            System.out.println("Displaying random generated Array: " + Arrays.toString(insideArray));    
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62751776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档