判断double值是否是一个非数字值以及Double.parseDouble()与Double.valueOf()

isNaN方法判断如果double值是一个非数字(NaN)值,则返回true;否则返回false。

语法  public boolean isNaN() 

返回值:如果double值是一个非数字(NaN)值,则返回true;否则返回false。

示例  本示例创建Double对象d1,并通过Double类的isNaN 方法判断对象d1的参数值是否是数字,然后将结果赋给boolean型变量。

Double d1 = new Double(45.23F);

boolean dou = d1.isNaN();

System.out.println(dou);

语法  public static boolean isNaN(double v) 

返回值:如果参数值为 NaN,则返回true;否则返回false。

参数:v为要判断的值。

示例  该方法判断如果指定的数是一个 NaN 值,则返回true;否则返回false。

本示例通过isNaN 方法判断double值是否为数字。

double d = 123.456;

boolean b = Double.isNaN(d);

System.out.println(b);


Double.parseDouble方法是把数字类型的字符串,转换成double类型

Double.valueOf方法是把数字类型的字符串,转换成Double类型

        double a = 0.009;
        String b = "1993";

        double parseDouble = Double.parseDouble(b);
        System.out.println(parseDouble);
        Double valueOf = Double.valueOf(a); //1993.0
        Double valueOf2 = Double.valueOf(b);
        System.out.println(valueOf);//0.009
        System.out.println(valueOf2);//1993.0

结果是:

1993.0
0.009
1993.0

可以看出大体是没有任何区别,就是返回值的类型区别!


Double.parseDouble()方法的源码:

public static double parseDouble(String s) throws NumberFormatException {
        return FloatingDecimal.readJavaFormatString(s).doubleValue();
}
  • 1
  • 2
  • 3

Double.valueOf()方法的源码:

  public static Double valueOf(String s) throws NumberFormatException {
          return new Double(FloatingDecimal.readJavaFormatString(s).doubleValue());
  }

valueOf方法在返回的时候new Double(),所以返回的是Double。


猜你喜欢

转载自blog.csdn.net/boguesfei/article/details/80542683