已经定义为String A;现在知道A的形式为68或者68.1111111这辆种形式,我现在想如果是68这样就显示68,如果是68.11111这样的只保留小数点后两位,谢谢各位!

解决方案 »

  1.   

    import java.math.BigDecimal;public class Test {
        /**
         * @param args
         */
        public static void main(String[] args) {
            String s = "68";
            String s1 = "68.1111111";
            System.out.println(dealString(s));
            System.out.println(dealString(s1));
        }    private static String dealString(String s) {
            try {
                int result = Integer.parseInt(s);
                return String.valueOf(result);
            } catch (Exception e) {
                double result = Double.parseDouble(s);
                return String.valueOf(number2(result));
            }
        }    private static double number2(double pDouble) {
            BigDecimal bd = new BigDecimal(pDouble);
            BigDecimal bd1 = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
            pDouble = bd1.doubleValue();
            return pDouble;
        }}
      

  2.   

    package csdn;public class AAA { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String A = "68";
    if(A.length()==2)
    System.out.println(A);
    else
    System.out.println(A.substring(0,5));
    }}
      

  3.   

    import java.io.*;
    public class Cbase {
    public static void main(String[] args) throws IOException{
    String A;
    BufferedReader r=new BufferedReader(new InputStreamReader(System.in));
    A=r.readLine();
    if(A.equals("68")) System.out.println(A);
    else System.out.println(A.substring(0,5));
    }
    }
      

  4.   

    用java.text.DecimalFormat
    public void show(String str){
    double valueA=0;
    try{
    Integer Int = new Integer(str);
    valueA = Int.intValue();
    }catch(NumberFormatException e){
                            try{
    DecimalFormat df = new DecimalFormat("0.00");
    str =df.format(Double.parseDouble(str));
    valueA = Double.parseDouble(str);
                               }
                            catch(Exception e){}
    }
    System.out.println(valueA);
    }
      

  5.   

    我是说A的形式是68或68.222这样的,实际上他是个可以获取的变量,被定义为String,也有可能为2222.333这样的,我是不是应该判断中如果有“.”才能保留两位小数,谢谢
      

  6.   

    import java.io.*;
    public class test {
    public static void main(String[] arg) throws IOException {
    BufferedReader r=new BufferedReader(new InputStreamReader(System.in));
    String A;
    A=r.readLine();
    System.out.println(A.substring(0,A.indexOf('.')+3)); 
    }
    }
      

  7.   

    我偷懒了,没有写判断语句来确定是否有.,我想只要你理解就行,其实应该写:
    if(A.indexOf('.')!=-1) System.out.println(A.substring(0,A.indexOf('.')+3));
    else System.out.println(A);
      

  8.   

    javac test.java回车
    java test回车
    45.23656(任意数)回车
    没有错。
      

  9.   

    这段程序是放在一个form里的,
    private String mainDownTimeL1;
    public String getMainDownTimeL1() {
           return mainDownTimeL1;
       }   public void setMainDownTimeL1(String mainDownTimeL1) {
           this.mainDownTimeL1 = mainDownTimeL1;
        }
    要求mainDownTimeL1的结果为有小数保存两位,整数时正常显示,最好能四舍五入,应该在getMainDownTimeL1方法中添如判断就可以吧,我是一个初学者,还请各位多多指教.