栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java浮点数的显示精度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java浮点数的显示精度

打印a

float
或a 时看到的位数
double
是Java的默认规则(从
float
和转换
double
为十进制)的结果。

Java的浮点数默认格式使用最少的有效十进制数字来将数字与附近的可表示数字区分开。1个

在您的示例中,

1.2345678990922222f
源文本中的
float
值转换为值1.23456788063049316406406,因为在该
float
类型可表示的所有值中,最接近的值是1.2345678990922222。下一个较低和下一个较高的值是1.23456776142120361328125和1.23456799983978271484375。

在打印此值时,Java只需要打印“
1.2345679”,因为这足以使我们可以

float
从其邻居1.23456776142120361328125和1.23456799983978978271484375中选择值1.2345678806304931640625。

对于您的

double
示例,
1.22222222222222222222d
将转换为1.22222222222222232090871330001391470432281494140625。可代表的下一个较低和下一个较高的值
double
是1.2222222222222220988641083749826066195964813232421875和1.2222222222222225429533182250452227890491485595703125。如您所见,为了将1.22222222222222232090871330001391470432281494140625与它的邻居区分开来,Java需要打印“
1.2222222222222223”。

脚注

1 Java SE
10
的规则可以在该

toString(floatd)
部分的java.lang.float文档中找到。该
double
文档是相似的。段落中最相关的部分为粗体:

返回的字符串表示形式

float argument
。下面提到的所有字符都是ASCII字符。

  • 如果参数为NaN,则结果为字符串“ NaN”。

  • 否则,结果是一个字符串,代表参数的符号和大小(绝对值)。如果符号为负,则结果的第一个字符为’

    -
    ‘(
    'u002D'
    );
    如果符号为正,则结果中不显示符号字符。至于大小 m

    • 如果 m 为无穷大,则用字符“ Infinity”表示;因此,正无穷大产生结果“无穷大”,而负无穷大产生结果“-无穷大”。

    • 如果 m 为零,则用字符“ 0.0”表示;因此,负零产生结果“ -0.0”,而正零产生结果“ 0.0”。

    • 如果 m 大于或等于10 -3但小于10 7,则将其表示为 m 的整数部分,十进制形式,不带前导零,后跟’

      .
      ‘(
      'u002E'
      ),后跟一个或多个十进制数字表示 m 的分数部分。

    • 如果 m 小于10 -3或大于或等于10 7,则以所谓的“计算机科学计数法”表示。让 Ñ 是唯一的整数,使得10 Ñ
      <10 Ñ 1 ; 然后让 一个 是的数学上精确的商数 和10 Ñ 使得1≤ 一个 然后<10的大小被表示为的整数部分 一个
      ,作为一个单一的十进制数字,后跟“

      .
      ”(
      'u002E'
      ),其次是十进制数字表示的小数部分 一个
      ,后面跟有字母“
      E
      ‘(
      'u0045'
      ),后跟 n 表示为十进制整数,由方法产生
      Integer.toString(int)

ma 的小数部分必须打印多少个数字?
必须有至少一位数字来表示小数部分,并且除此以外,还需要与唯一数量不同的数字,以便将参数值与type的相邻值唯一区分开

float
也就是说,假设
x 是此方法针对有限的非零参数 f 生成的十进制表示形式所表示的精确数学值。那么 f 必须是
float
最接近 x
的值;或者,如果两个
float
值相等地接近 x ,则 f 必须是其中之一,且 f 的最低有效位必须为0。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号