Java 双数据类型格式

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

这对你们来说是个很小的问题。请告诉我实现最佳解决方案的方法。我的要求是,我有一个传入的双精度值,因此如果小数点后的值为0,则截断小数点后的所有值。例如:30.0应该变成30,其中as 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());
     }
 }

}

将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,谢谢你的替代解决方案。