两个string型的变量,存放的都是数值,但是有正负号和小数点,这样的两个string型变量如何按照数值进行比较????我想,先转换成Integer型进行比较,但是只要是有正负号和小数点,就有异常,应该如何解决。

解决方案 »

  1.   

    try {
      Float.parseFloat("-1.25");
    }
    catch (NumberFormatException e) {
      e.printStackTrace();
    }
      

  2.   

    转换成decimal应该就可以了,可以try
      

  3.   

    一个例子,用的是double,直接用方法转换
    import java.lang.Double;
    public class Test6 {
    public static void main(String[] src){
    String test1 = new String("2.8548334E4");
    String test2 = new String("28.548334E3");

    /*转换成double进行比较*/
    double testdouble1 = Double.parseDouble(test1);
    double testdouble2 = Double.parseDouble(test2);
    System.out.println(testdouble1);
    System.out.println(testdouble2);

    if(testdouble1 != testdouble2){
    System.out.println("不同!");
    }
    else{
    System.out.println("相同!");
    }
    }
    }
    测试有效
      

  4.   

    转换成double不能用integer,因为有小数的。
      

  5.   

    将字符串转换成float或double再进行比较
    String astr = "-1.23";
    double aa = new Double(astr).parseDouble();
      

  6.   

    if(testdouble1 != testdouble2){
    System.out.println("不同!");
    }这样不行吧,一般float,double性的比较一般要用
    if (abs(testdouble1-testdouble2) < 10E-8) {
    System.out.println("不同!");
    }
    10E-8,这里的8就是你要的精度问题咯.