2011-02-08 74 views
1

这对你们来说是一个非常微不足道的问题。请为我提供实现最佳解决方案的方法。我的要求是,我有一个传入的Double值,因此如果小数点后面的值为0,则不会在小数点后截断所有内容。例如:30.0应该变为30,其中30.12或30.1应该保持原样。直到现在,我只想出了一种方法来知道小数点后有多少位数字。双数据格式

package com.convertdatatypes; 
public class DoubleCheck { 

public static void main(String args[]){ 

    Double value = 30.153; 
    String val = value.toString(); 
    String[] result = new String[2]; 

    for(int i=0; i<val.length(); i++){ 
    result = val.split("\\."); 
    System.out.println("Number of Decimals in: " + val + " : " + result[1].length()); 
    } 
} 

}

回答

1

另一种方法是使用下面的

double value = 30.153; 
Object value2 = value == (long) value ? String.valueOf((long) value) : value; 
System.out.println("Number of Decimals in: " + value2); 

通过这种方式,如果值保持不变或双倍,则打印为长整型。