1.区别
double是双精度浮点数类型,double类型的数字都是以
而long的取值范围虽然比double要小,但是
解释:
比如:0.1,0.2这类十进制数,在二进制中
**例如:**在 double 类型中,
double a = 0.1; double b = 0.2; double sum = a + b; System.out.println(sum); // 输出:0.30000000000000004
2.如果你需要更高的精度,并希望得到准确的结果,可以使用 BigDecimal 类型进行计算:
import java.math.BigDecimal;
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal sum = a.add(b);
System.out.println(sum); // 输出:0.3
public class Example {
public static void main(String[] args) {
long x = 1234567890123456789L;
System.out.println(x); // 输出:1234567890123456789
long y = 9223372036854775807L;
System.out.println(y); // 输出:9223372036854775807
}
}
3.double和long
public class Example {
public static void main(String[] args) {
double x = 1234567890123456789.0;
System.out.println(x); // 输出:1.2345678901234568E18
long y = 1234567890123456789L;
System.out.println(y); // 输出:1234567890123456789
}
}