Java 双数据类型格式
这对你们来说是个很小的问题。请告诉我实现最佳解决方案的方法。我的要求是,我有一个传入的双精度值,因此如果小数点后的值为0,则截断小数点后的所有值。例如:30.0应该变成30,其中as 30.12或30.1应该保持原样。到目前为止,我只知道小数点后有多少位数Java 双数据类型格式,java,Java,这对你们来说是个很小的问题。请告诉我实现最佳解决方案的方法。我的要求是,我有一个传入的双精度值,因此如果小数点后的值为0,则截断小数点后的所有值。例如:30.0应该变成30,其中as 30.12或30.1应该保持原样。到目前为止,我只知道小数点后有多少位数 package com.convertdatatypes; public class DoubleCheck { public static void main(String args[]){ Double value = 3
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());
}
}
}将java的DecimalFormat与以下模式一起使用:
0.##
请参见使用java的DecimalFormat和以下模式:
0.##
另一种方法是使用以下方法
double value = 30.153;
Object value2 = value == (long) value ? String.valueOf((long) value) : value;
System.out.println("Number of Decimals in: " + value2);
这样,如果值不变,则打印为long,否则打印为double。另一种方法是使用以下方法
double value = 30.153;
Object value2 = value == (long) value ? String.valueOf((long) value) : value;
System.out.println("Number of Decimals in: " + value2);
通过这种方式,如果值不变,则打印为long,否则打印为double。您好,Chahuistle,刚刚尝试了您的解决方案。修正:这么简单。非常感谢。哦,没问题。。。我只是向您指出javadocs:PHi Chahuistle,只是尝试了您的解决方案。修正:这么简单。非常感谢。哦,没问题。。。我只是给你指了指javadocs:PHey Peter,谢谢你的替代解决方案。嘿Peter,谢谢你的替代解决方案。