java中双值的乘法运算符的保证精度是多少?
例如,2.2 * 100是220.00000000000003,但是220是双精度数。220.00000000000003是220之后的下一个两倍。
乘法工作正常,但2.2
不能精确表示为双精度。最接近的双打是:
某些软件会将后一个值打印为2.2
,但这并不表示准确。这只是意味着它被视为“足够接近”。
对于实现精确 IEEE 754 算术的 C99 编译器,是否存在型的 、的值,使得 ? 编辑:所谓“实现精确的IEEE754算法”,我指的是一个正确地将FLT_EVAL_METHOD定义为0的编译器。 提供符合IEEE 754标准的浮点数的C编译器只能将单精度除法替换为常数,如果所述逆本身可以完全表示为。 实际上,这种情况只发生在2的幂上。因此,程序员Alex可能确信< code>f / 2.0f
问题内容: 我正在编写一个简单的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双精度表示法精确存储
什么是“精度”?使用float和double时,单和双有什么区别?“单精度32位IEEE 754浮点”“双精度64位IEEE 754浮点”是什么意思?
问题内容: 我想知道为什么会出现此错误。(这是Eclipse调试的显示日志) 我不明白为什么我没有得到2.97! 问题答案: 如果需要,您应该已经习惯了。 s以分数形式存储在 二进制 而不是十进制中。因此,例如,仅存储为。 并且不能精确地表示为二进制分数,因此会有一些舍入误差。 您可能还会发现本文很有帮助。
如何将字符串number1=JOptionPane相乘。showInputDialog(空,“数字1” 例如,我将把数字1上输入的值乘以0.16,然后在对话框中显示。我该怎么做?