当前位置: 首页 > 面试题库 >

如何确定双精度的最大精度

充鑫鹏
2023-03-14
问题内容

我试图确定双精度的最大精度是多少。在此链接的可接受答案的注释中,Java中的double保持精度 @PeterLawrey将max precision设置为15。

您如何确定呢?


问题答案:

@PeterLawrey表示最大精度为15。

实际上,这根本不是他所说的。他说的是:

双精度有15个小数位

他错了。它们的精度为15个十进制 数字

任何数字中的小数位数由其对数10的对数给出。15是对数10的下限值(2 53
-1),其中53是尾数的位数(包括隐含的位),如下所示因此,Javadoc和IEEE 754中描述的“ 2 53
-1”是最大可能的尾数。实际值是15.954589770191003298111788092734,为Windows计算器的限制。

他将其描述为“精确的小数位”是完全错误的。如果A 的精度 均在小数点之前,则它们 的精度为double15个小 数位数
对于带小数部分的数字,由于十进制和二进制小数的不可通约性,您可以用十进制表示形式获得超过15位的数字。



 类似资料:
  • 我试图确定double的最大精度是多少。在这个链接中接受的答案的注释中,Java中的Retain precision with double@PeterLawrey声明max precision In 15。 你如何确定这一点?

  • 以下代码中的几个问题: a)std::numeric_limits::digits10表示什么?b)如果(a)表示在机器上可重新呈现的最大10位双数,那么我们可以通过添加1,2来获得越来越高的精度,然后机器上可重新呈现的最大双数是多少?如何显示?即什么std::numeric_limits::digits10 MaxN?

  • 问题内容: 我正在编写一个简单的Java程序。我需要从输入中获取一个字符串并将其分为两部分:1-double 2-string。然后,我需要对double进行简单的计算,并将结果发送到具有特定精度的输出(4)。它工作正常,但是当输入为0时出现问题,则不能正常工作。 例如,对于这些输入,输出将是: 1公斤 输出:2.2046 3.1公斤 输出:6.8343 但是当输入为0时,输出应为0.0000,但

  • 问题内容: java中双值的乘法运算符的保证精度是多少? 例如,2.2 * 100是220.00000000000003,但是220是双精度数。220.00000000000003是220之后的下一个两倍。 问题答案: 乘法工作正常,但不能精确表示为双精度。最接近的双打是: 2.199999999999999733(0x4001999999999999) 2.200000000000000177(

  • 存储在双精度中的大于2^53的正整数的最大精度误差是多少?换句话说,对于从2^53 1到max(double)的所有正整数,实际整数和双精度值之间的最大精度差是多少。 我问这个问题的一点背景:我正在从pubsub读取SNMP计数器,并将它们写入BigQuery。计数器是UINT64,但BigQuery的整数数据类型是INT64。因此,我目前在BQ模式中使用浮点。对于我的用例来说,如果计数器关闭了数

  • 我正在写一个基于无符号整数的图像类。我目前对8位和16位RGBA像素使用uint8_t和uint16_t缓冲,要从16位转换到8位,我只需将16位值除以std::numeric_limits 但是,如果我想要一个图像,每个RGBA分量都是64位无符号整数(我知道,这个数字高得离谱),我该如何在0和1之间找到一个浮点/双精度数,来表示我的像素值在0和最大uint64_t之间有多远呢?我认为转换为do