Java BigDecimal 与 Android BigDecimal

问题描述 投票:0回答:3

我遇到了

java.math.BigDecimal
android.icu.math.BigDecimal
,因为我需要在项目中使用
BigDecimal

我意识到 Android

BigDecimal
需要 API 级别 24

这两个类有什么不同?不知道Android实现上有没有性能优化?

java android bigdecimal icu
3个回答
10
投票

android.icu.math.BigDecimal
ICU 库(Unicode 国际组件)的一部分。自 API 24 起,Android 框架公开了一些 ICU4J 类供您使用。 有关 Unicode 和 I18N 支持的 Android 文档 指出:

java
android
包中的某些类与这些类具有等效项 在 ICU4J 中发现。然而,ICU4J 通常为以下方面提供更广泛的支持: 标准和语言。

不要对上面的引用感到困惑,因为 ICU 类确实驻留在

android
包中。为了避免冲突,它们从
android.icu
移至
com.ibm.icu

特别是关于

BigDecimal
我在互联网上发现了一个讨论,其结论是
BigDecimal
在 Java 中可用之前就已在 ICU 中可用,并且出于兼容性目的而保留在库中。

底线:使用您喜欢的任何实现,但是

java.math.BigDecimal
将来不太可能被弃用。


1
投票

无论使用

java.math.BigDecimal
还是
android.icu.math.BigDecimal
,两者之间不会有性能差异。因为这些都是基础类,所以 Android
BigDecimal
是参考 Java
BigDecimal
重新创建的。

如果您问两者之间的区别,那么

  • 两者的目的是相同的。
  • 通过代码,它们可能有所不同,可以有一些更少或更多的方法。因此,您应该阅读这两个类中的所有方法以找出差异。

https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html https://developer.android.com/reference/java/math/BigDecimal

Android 重新创建类以向现有类添加一些功能。


-5
投票

我认为 TLDR 的区别在于

java.math.BigDecimal
适用于 Java 和
android.icu.math.BigDecimal
适用于 Kotlin。

您可以阅读他们的文档以了解更详细的差异。

https://developer.android.com/reference/java/math/BigDecimal https://developer.android.com/reference/kotlin/android/icu/math/BigDecimal

© www.soinside.com 2019 - 2024. All rights reserved.