【问题标题】:Java round double and get a doubleJava回合双倍并获得双倍
【发布时间】:2013-03-30 20:54:43
【问题描述】:

我见过许多使用 DecimalFormat 和 NumberFormat 进行舍入的示例,但这些在使用时返回字符串。是的,我知道可以使用 parse 来取回数字,但这会增加复杂性。

那么如何将一个 double 舍入到给定的精度,并以尽可能少的中间步骤获得一个 double back?

【问题讨论】:

  • 您只能将double 舍入到以 2 为底的精度,而不是“小数点数”的精度。如果您想使用多个小数点,您真的,真的,真的应该使用BigDecimal
  • 有什么办法可以写成base 10吗?
  • 当然,使用BigDecimal。除此之外,没有。

标签: java precision rounding


【解决方案1】:

没有真正的方法可以做到这一点。我想你可以使用旧的 (X*10^N)/10^N 技巧,但你可能无法获得你想要的任意精度。这就是浮点数的诀窍。如果您想要任意精度,则需要使用 BigDecimal。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2014-02-28
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多