这对你们来说是一个非常微不足道的问题。请建议我实现最佳解决方案的方法。我的要求是,我有一个传入的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());
}
}
}
答案 0 :(得分:3)
使用具有以下模式的java的DecimalFormat:
0.##
请参阅http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html
答案 1 :(得分:1)
另一种方法是使用以下
double value = 30.153;
Object value2 = value == (long) value ? String.valueOf((long) value) : value;
System.out.println("Number of Decimals in: " + value2);
这样,如果值不变则打印为long,否则打印为double。