This is a very trivial problem for you guys. Please suggest me the way to achieve the optimal solution. My requirement is, I have an incoming Double value, so if the value after the decimal point is 0, than truncate everything after the decimal. For example: 30.0 should become 30, whe开发者_如何学编程re as 30.12 or 30.1 should stay as it is. Till now I have only figured out a way to know how many digits are there after the decimal point.
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());
     }
 }
}
use java's DecimalFormat with the following pattern:
0.##
See http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html
Another approach is to use the following
double value = 30.153;
Object value2 = value == (long) value ? String.valueOf((long) value) : value;
System.out.println("Number of Decimals in: " + value2);
This way it prints as a long if the value is unchanged or a double otherwise.
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
 加载中,请稍侯......
      
精彩评论