我是java的初学者,我们的教授避免从java.math包中讨论BinInteger和BigDecimal类。我想知道为什么。它们不是那么有用吗?当我们确实需要使用BigInteger时?
答案 0 :(得分:1)
处理货币时,十进制数据类型至关重要
答案 1 :(得分:1)
在可能的情况下始终使用原语,因为:
long
是最大的原始整数类型,其最大值为9,223,372,036,854,775,807
或2^63 - 1
,最小值为-2^63
。
double
是最精确的原始浮点类型,具有64位精度,即a lot。
但是,如果您确实需要任意大/小整数或任意精确的十进制数,BigInteger
和BigDecimal
类型是合适的。然而,这种情况并不常见,这可能是您的教授没有讨论这些类型的原因。
答案 2 :(得分:0)
你并不经常需要它们,但是当你确实需要它们时,你真的需要它们。当你需要实际存储任意精度整数或实数时,你真的只需要它们。 long
上升到2 63 -1,这是一个相当大的数字。
答案 3 :(得分:0)
int和long的基本类型可以表示有限的值范围。浮点基元float和double也是如此。然而,你也面临着精度有限的问题。对于许多情况,这不会造成任何问题,但是当需要更大的数字或精确的精度时(例如,在银行应用程序中,您希望尽可能精确),您将使用BigInteger
和BigDecimal
。
答案 4 :(得分:0)
BIGINT始终是两个Ints的产物。 例99X99 = 10000到两倍大。
答案 5 :(得分:0)
你提到的两个图书馆都有它们的用途,如果没有,它们就不存在了。但是,您的老师可能选择不讨论它们,因为您可能不会在特定课程中使用它们。 (他必须在某处限制,你不能在一门课程中覆盖整个Java库。)