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

双精度值返回0

陆昕
2023-03-14
问题内容

这是一个例子:

Double d = (1/3);
System.out.println(d);

这将返回0,而不是应有的0.33333…。

有人知道吗?


问题答案:

这是因为13会被视为integers您没有另外指定时的处理方式,因此先1/3评估,integer 0然后将转换为double``0。要解决此问题,请尝试(1.0/3),或者1D/3明确声明您正在处理double值。



 类似资料:
  • 问题内容: 官方Javadoc 说,它返回“等于数学整数”的a,但是为什么它不应该返回a ? 问题答案: 根据同一Javadoc: 如果自变量是或无穷大或正零或负零,则结果与自变量相同。不能用。 最大的价值也比最大的大,所以它必须是一个。

  • 问题内容: 在Golang中如何导出返回双精度数组的函数。现在以前似乎可以返回“运行时错误:cgo结果具有Go指针”的方式: 问题答案: 为了安全地将指针存储在C中,它指向的数据必须在C中分配。

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

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 这是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 是否有比浮点精度更好的数据类型? 问题答案: 小数数据类型 与基于硬件的二进制浮点数不同,十进制模块具有用户可更改的精度(默认为28位),可以与给定问题所需的精度一样大。 如果您对性能问题感到困扰,请查看GMPY