【问题标题】:The biggest integer value can be represented by double in JavaJava中最大的整数值可以用double表示
【发布时间】:2015-02-23 05:17:06
【问题描述】:

Java 中 double 可以表示的最大整数值是多少?点后的最大位数可以表示的最大值是多少?它是否取决于点之前的位数取决于点之后的最大位数? Double 类中有两个字段:MAX_VALUE 和 MIN_VALUE。 MAX_VALUE 是什么意思?

【问题讨论】:

  • 您认为MAX_VALUE 可能意味着什么?或许,是用来表示小数点的字符?
  • “点后的最大位数”是什么意思?例如如果数字为零,则在点 (0.00000000000000000000000...) 之后可以有无限多个零。
  • 浮点数由符号位、指数位和尾数位(二进制数字)组成。所以 MAX_VALUE 类似于 (base 2) 0.11111111 * 2^11111。一般来说,请注意许多缺点以及在哪里使用(丑陋的冗长)BigDecimal。 Math.nextUp(double) 将给出可能超过 1 的相邻双精度。

标签: java double


【解决方案1】:
  • double表示的最大整数值为:2^53,详见look here

  • 而最大值可以用max位数表示后的点数取决于数字本身,但最大位数(例如表示0.1时)是0.1000000000000000055511151231257827021181583404541015625看看@987654322 @。

  • MAX_VALUE 表示:(2-2^-52)·2^1023(查看this answer 处的最小值和最大值)

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2019-04-30
    • 2014-11-02
    • 2011-04-10
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多