Java 中的双精度
本教程介绍了 double 及其在 Java 中的用法。
Double 是 Java 中用于存储浮点值的数据类型。Java 提供了一组丰富的数据类型,如 int、float、double、boolean 等。int 数据类型存储整数值,如 -1
、2
、-3
和 4
。
int 数据类型可以存储介于 -2,147,483,648 (-231) 到 2,147,483,647 (231-1) 之间的值。它不能存储诸如 1.5
和 2.88
之类的小数值。第二个原始参数称为 float 可以存储小数值。
Java 有另一种原始数据类型来存储小数值,称为 double。本教程将讨论 double 以及 double 和 Double 之间的区别。
Double 是 Java 中的原始数据类型,而 Double
是可以创建双精度对象值的包装类。让我们通过一些例子来理解。
Java 中的双精度 VS 浮点类型
- double 的范围比 Java 中的 float 类型更大。
- 这是因为 double 占用 8 个字节,而 float 只占用 4 个字节。
- 双精度数据类型比浮点数据类型慢。
- 双精度数据类型比浮点数据类型具有更高的精度。
- double 可以精确到大约 15 位,而 float 可以只有 6 到 7 位的精度。
Java 中的原始 Double 类型
在这个例子中,我们创建了一个 double 类型的变量 d,它保存一个浮点值。
看,由于双重类型,此代码工作正常。我们不能使用 int 类型存储这些值。这就是我们在 Java 中声明双精度类型的方式。
请参见下面的示例。
public class SimpleTesting {
public static void main(String args[]) {
double d = 34354.232;
System.out.println("d = " + d);
}
}
输出:
d = 34354.232
在 Java 中添加两个双精度值
现在让我们计算两个双精度值的总和。
为此,我们创建了三个双精度变量并将结果保存到双精度变量中。如果我们将结果存储为 int 类型,由于内存有限,结果将被截断。
看看下面的代码。
public class SimpleTesting {
public static void main(String args[]) {
double d1 = 34354.232;
double d2 = 4333.32313;
double sum = d1 + d2;
System.out.println("sum = " + sum);
}
}
输出:
sum = 38687.55513
Java 中的 double
包装类
就像 int 有 Integer 一样,float 有 Float
就像 double 有 Double
类来创建原始双精度值的对象。换句话说,Double
是 double 数据类型的包装类。
Double 类的语法是:
public final class Double extends Number implements Comparable<Double>
将 double 数据类型包装到 Double 包装器类中允许我们使用各种内置方法。让我们通过代码示例来理解。
在 Java 中创建双对象
让我们首先创建一个示例来创建一个 Double
对象。看看下面的代码。
public class SimpleTesting {
public static void main(String args[]) {
Double d1 = 34354.232;
System.out.println(d1);
}
}
输出:
34354.232
在 Java 中使用 sum()
方法添加两个双精度值
Java Double 类提供了几种对浮点值执行的内置方法。Java 在 Java 8 版本中添加了一个 sum()
方法来获得两个浮点值的相加。
在这里,我们使用了这种方法,并看到了下面的代码。
public class SimpleTesting {
public static void main(String args[]) {
Double d1 = 34354.232;
Double d2 = 4333.32313;
Double sum = Double.sum(d1, d2);
System.out.println(sum);
}
}
输出:
38687.55513
结论
在本教程中,我们了解了 Java 中 double 的含义。然后我们了解了 double 和 float 之间的区别。我们还了解了 Double 包装器类及其方法。