色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java浮點(diǎn)類型和雙精度類型

Java語(yǔ)言中提供了兩種浮點(diǎn)類型: float和double。

float類型占用4個(gè)字節(jié),double類型占用8個(gè)字節(jié)。由于double類型的精度更高,因此在實(shí)際開發(fā)中大多數(shù)情況下使用double類型。

float f = 1.23f; // 注意要在數(shù)字后加上f表示這是一個(gè)float類型
double d = 4.56;

由于浮點(diǎn)數(shù)是用二進(jìn)制表示的,而二進(jìn)制小數(shù)無法精確地表示所有的10進(jìn)制小數(shù),因此浮點(diǎn)數(shù)計(jì)算可能會(huì)出現(xiàn)精度誤差。

double a = 0.1;
double b = 0.2;
double c = a + b;
System.out.println(c); //輸出結(jié)果為0.30000000000000004

為了避免精度誤差影響程序的正確性,我們可以使用BigDecimal類進(jìn)行精確計(jì)算。下面是一個(gè)使用BigDecimal計(jì)算浮點(diǎn)數(shù)的例子:

import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal c = a.add(b);
System.out.println(c); //輸出結(jié)果為0.3
}
}

另外一個(gè)需要注意的問題是浮點(diǎn)數(shù)的比較。由于浮點(diǎn)數(shù)的精度誤差,直接使用等于號(hào)進(jìn)行比較可能會(huì)出現(xiàn)問題。因此我們通常將比較操作定義為一個(gè)誤差范圍內(nèi)的差值。

double a = 1.23456789;
double b = 1.23456790;
if (Math.abs(a - b)< 0.000001) {
System.out.println("相等");
} else {
System.out.println("不相等");
}

在日常開發(fā)中,我們通常使用double類型來表示浮點(diǎn)數(shù)。