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 } }