float和double类型的主要设计目的是为了科学计算和工程计算。它们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。float和double类型对于货币计算尤为不合适.
static void floatTest(){
System.out.println(1.03-0.42);
System.out.println(1-0.1*9);
//Use BigDecimal, BigInteger, or long
BigInteger bi;
BigDecimal bd;
// smaller than Int max, use it. or long if smaller than 10(18), else use BigDecimal
}
本文探讨了float和double类型的设计目的及应用场景,指出它们适用于科学计算而非货币计算,并建议在需要高精度的情况下使用BigDecimal、BigInteger或long。
1146

被折叠的 条评论
为什么被折叠?



