代码之家  ›  专栏  ›  技术社区  ›  Mosius sMiLo

Java BigDimple与Android BigDimple

  •  4
  • Mosius sMiLo  · 技术社区  · 6 年前

    我已经面对 java.math.BigDecimal android.icu.math.BigDecimal 按我的要求使用 BigDecimal 在项目中。

    我意识到安卓 双小数 需要API级别24

    这两个班有什么不同?我想知道Android实现中是否存在性能优化?

    3 回复  |  直到 6 年前
        1
  •  5
  •   Markus Penguin    6 年前

    android.icu.math.BigDecimal 是其中的一部分 ICU library (Unicode的国际组件)。由于api 24,android框架公开了一些icu4j类供您使用。这个 Android documentation on Unicode and I18N support 国家:

    一些课程在 java android 包裹与那些 在ICU4J中发现。然而,ICU4J通常为 标准和语言。

    不要被上面的引用混淆,因为ICU类确实存在于 安卓 包裹。他们被转移到 android.icu com.ibm.icu 为了避免冲突。

    关于 BigDecimal 特别地: I found a discussion on the internet 由此得出结论 双小数 在ICU中可用之前,它在Java中可用,并且为了兼容的目的而保存在库中。

    底线:使用您喜欢的任何实现,但是 java.math.BigDecimal 不太可能在将来被弃用。

        2
  •  1
  •   Khemraj Sharma    6 年前

    要么使用 java.math.BigDecimal android.icu.math.BigDecimal ,两者之间不会有性能差异。因为这些是基本类,安卓 BigDecimal 使用Java重新创建 双小数 .

    如果你问两者的区别,那么

    • 两个目的是相同的。
    • 根据代码,它们可能不同,可能有一些更少或更多的方法。所以您应该阅读这两个类中的所有方法来找出不同之处。

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

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

        3
  •  -3
  •   IsaiahJ    6 年前

    我认为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