Java中的浮点类型有float和double两种,它们的取值范围也不同。
float类型是单精度浮点数,占4个字节(32位),取值范围是-3.4E38~3.4E38。其中,3.4E38表示3.4乘以10的38次方。
double类型是双精度浮点数,占8个字节(64位),取值范围是-1.7E308~1.7E308。其中,1.7E308表示1.7乘以10的308次方。
float min = -3.4e+38f; //最小值 float max = 3.4e+38f; //最大值 double min = -1.7e+308; //最小值 double max = 1.7e+308; //最大值
float
类型表示单精度数字。
float
类型变量在需要一个分数组件时很有用。下面是一些浮动变量声明的例子:
float high, low;
float是32位宽,其范围约为 1.4e-045
至 3.4e + 038
。
Java中的浮点字面值默认为双精度。要指定浮点字面值,必须在该常量后面附加一个 F
或 f
。
以下代码显示了如何声明浮点字面值。
public class Main { public static void main(String args[]) { float d = 3.14159F; System.out.print(d);//3.14159 } }
上面的代码生成以下结果。
Java double类型表示双精度数字。
double是64位宽,其范围大约从4.9e-324到1.8e + 308。
这里是一个程序使用双变量来计算圆的面积:
public class Main { public static void main(String args[]) { double pi, r, a; r = 10.8888; // radius of circle pi = 3.1415926; // pi, approximately a = pi * r * r; System.out.println("Area of circle is " + a); } }
输出:
双精度型数字具有带小数部分的小数值。它们可以以标准或科学记数法表示。标准符号由一个整数数字组成,后面跟一个小数点,后面跟一个小数点。例如, 2.0
, 3.14159
和 0.6667
。
public class Main { public static void main(String args[]) { double d = 3.14159; System.out.print(d);//3.14159 } }
上面的代码生成以下结果。
您可以通过附加D或d来显式指定双字面值。
public class Main { public static void main(String args[]) { double d = 3.14159D; System.out.print(d);//3.14159 } }
上面的代码生成以下结果。
科学记数法使用标准符号,浮点数加上指定a的后缀功率乘以该数的 10
。指数由E或e指示,后跟十进制数,可以是正数或负数。例如, 6.02E23
, 314159E-05
和 4e + 100
。
public class Main { public static void main(String[] argv) { double d1 = 6.022E23; double d2 = 314159E-05; double d3 = 2e+100; System.out.println("d1 is " + d1); System.out.println("d2 is " + d2); System.out.println("d3 is " + d3); } }
此程序生成的输出如下所示:
Java的浮点计算能够返回 + infinity
, -infinity
, +0.0
, -0.0
和 NaN
将正数除以0.0会报+无穷大。例如, System.out.println(1.0/0.0);
输出无穷大。
public class Main{ public static void main(String[] args) { System.out.println(1.0/0.0); } }
上面的代码生成以下结果。
将负数除以0.0输出 - 无穷大。例如,System.out.println(-1.0 / 0.0);输出 - 无穷大。
public class Main{ public static void main(String[] args) { System.out.println(-1.0/0.0); } }
输出:
将 0.0
除以 0.0
返回 NaN
。负数的平方根为 NaN
。例如, System.out.println(0.0/0.0)
和 System.out.println(Math.sqrt(-1.0))
输出NaN。
将正数除以+无穷大输出+0.0。例如,System.out.println(1.0 /(1.0/0.0));输出+0.0。
将负数除以+无穷大输出-0.0。例如,System.out.println(-1.0 /(1.0/0.0));输出-0.0。
public class Main { public static void main(String[] args) { Double d1 = new Double(+0.0); System.out.println(d1.doubleValue()); Double d2 = new Double(-0.0); System.out.println(d2.doubleValue()); System.out.println(d1.equals(d2)); System.out.println(+0.0 == -0.0); } }
上面的代码生成以下结果。
Java 实例 - 如何执行编译过 Java 文件 Java 实例本文我们演示如何执行编译过的 HelloWorld.java 文件,其中 Java 代码如下:pub...
Java 实例 - 字符串格式化 Java 实例以下实例演示了通过 format() 方法来格式化字符串,还可以指定地区来格式化()://StringFo...
Java 实例 - 数组添加元素 Java 实例以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 insertElement () 方法向...