当前位置: 首页 > 知识库问答 >
问题:

Java中什么是单精度/双精度?[副本]

勾渝
2023-03-14

什么是“精度”?使用float和double时,单和双有什么区别?“单精度32位IEEE 754浮点”“双精度64位IEEE 754浮点”是什么意思?

共有1个答案

楚奇逸
2023-03-14

“单精度”和“双精度”是指用于存储一个具有不同精度程度的实数的机器字(4字节/32位块)的数量。

IEEE 754只是一个标准--现代计算中最主要的标准--关于如何使用这些位来表示一个实数,实质上是将它表示为

 +/- 1.xyz... * 2^abc...

...其中的问题是您使用多少位内存来存储xyzabc

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

  • 单精度浮动值和双精度浮动值有什么区别?

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

  • 我很感激每一个暗示,关于转移目标的文件实现。我已经研究了一些关于浮动精度的论文,但在过去的两周里没有取得太大的进展。 提前感谢!

  • 问题内容: 使用double时,如何使用模数运算符处理Java的怪异行为? 例如,你所期望的结果是(事实上,谷歌说,我不是要疯了),但是当我在Java中,我得到运行它。 我了解这是Java存储和处理方式加倍的结果,但是有没有解决的方法? 问题答案: 如果需要精确的结果,请使用精确的类型: 为什么是3.8000 … 003?因为Java使用FPU来计算结果。3.9不可能以IEEE双精度表示法精确存储

  • 对于实现精确 IEEE 754 算术的 C99 编译器,是否存在型的 、的值,使得 ? 编辑:所谓“实现精确的IEEE754算法”,我指的是一个正确地将FLT_EVAL_METHOD定义为0的编译器。 提供符合IEEE 754标准的浮点数的C编译器只能将单精度除法替换为常数,如果所述逆本身可以完全表示为。 实际上,这种情况只发生在2的幂上。因此,程序员Alex可能确信< code>f / 2.0f