为什么我们看不到 BigInteger 的大量使用?
Why we don't see much use of BigInteger?
我是 java 的初学者,我们的教授避免讨论 java.math package.I 中的 BinInteger 和 BigDecimal 类 想知道 why.Are 它们没那么有用什么时候我们必须使用 BigInteger?
您并不经常需要它们,但是当您确实需要它们时,您确实需要它们。只有当您需要实际存储任意精度整数或实数时,您才真正需要它们。 long
上升到 263-1,这是一个相当大的数字。
处理货币时小数数据类型必不可少
原始类型 int 和 long 可以表示的值范围有限。浮点基元 float 和 double 也是如此。但是,您还面临精度有限的问题。在许多情况下,这不会造成任何问题,但是当需要更大的数字或精确度时(例如,在银行应用程序中,您希望尽可能精确),您将使用 BigInteger
和 BigDecimal
。
尽可能使用基元,因为:
- 它们有运算符而不是方法,因此代码更容易 read/write。
- 它们效率更高。
long
,最大原始整数类型,最大值为9,223,372,036,854,775,807
,或2^63 - 1
,最小值为-2^63
。
double
,最精确的原始浮点类型,精度为64位,即a lot.
但是,如果您确实需要一个任意 large/small 整数或任意精确的小数,则 BigInteger
和 BigDecimal
类型是合适的。然而,这种情况并不常见,这可能是您的教授没有讨论这些类型的原因。
BIGINT 总是两个 Int 的乘积。
示例 99X99 = 10000 最多两倍大。
你提到的两个库都有它们的用途,如果没有它们就不会存在。但是,您的老师可能选择不讨论它们,因为您可能不会在特定课程中使用它们。 (他必须在某处设置一个限制,你不能在一门课程中涵盖整个 Java 个库。)
我是 java 的初学者,我们的教授避免讨论 java.math package.I 中的 BinInteger 和 BigDecimal 类 想知道 why.Are 它们没那么有用什么时候我们必须使用 BigInteger?
您并不经常需要它们,但是当您确实需要它们时,您确实需要它们。只有当您需要实际存储任意精度整数或实数时,您才真正需要它们。 long
上升到 263-1,这是一个相当大的数字。
处理货币时小数数据类型必不可少
原始类型 int 和 long 可以表示的值范围有限。浮点基元 float 和 double 也是如此。但是,您还面临精度有限的问题。在许多情况下,这不会造成任何问题,但是当需要更大的数字或精确度时(例如,在银行应用程序中,您希望尽可能精确),您将使用 BigInteger
和 BigDecimal
。
尽可能使用基元,因为:
- 它们有运算符而不是方法,因此代码更容易 read/write。
- 它们效率更高。
long
,最大原始整数类型,最大值为9,223,372,036,854,775,807
,或2^63 - 1
,最小值为-2^63
。
double
,最精确的原始浮点类型,精度为64位,即a lot.
但是,如果您确实需要一个任意 large/small 整数或任意精确的小数,则 BigInteger
和 BigDecimal
类型是合适的。然而,这种情况并不常见,这可能是您的教授没有讨论这些类型的原因。
BIGINT 总是两个 Int 的乘积。 示例 99X99 = 10000 最多两倍大。
你提到的两个库都有它们的用途,如果没有它们就不会存在。但是,您的老师可能选择不讨论它们,因为您可能不会在特定课程中使用它们。 (他必须在某处设置一个限制,你不能在一门课程中涵盖整个 Java 个库。)