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

为什么Math.floor返回双精度数?

崔涵亮
2023-03-14
问题内容

官方Javadoc
说,它Math.floor()返回double“等于数学整数”的a,但是为什么它不应该返回a
int


问题答案:

根据同一Javadoc:

如果自变量是NaN或无穷大或正零或负零,则结果与自变量相同。不能用int

最大的double价值也比最大的大int,所以它必须是一个long



 类似资料:
  • 问题内容: 这是一个例子: 这将返回0,而不是应有的0.33333…。 有人知道吗? 问题答案: 这是因为和会被视为您没有另外指定时的处理方式,因此先评估, 然后将转换为。要解决此问题,请尝试,或者明确声明您正在处理double值。

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

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

  • 问题内容: 为了将字节数组转换为双精度型,我发现了这一点: 但是我找不到将双精度型转换为字节数组的任何东西。 问题答案: 甚至更简单

  • 我有数据。该表名为enc.per。每天的遭遇日。它有2403行,其中指定了服务日期和当天就诊的患者数量。我想看看在工作日中任何一种类型的患者的中位数。 这一行给出了一个错误 < code >[. data . table (enc . per . day,,list(patient . enches = median(n)),:j的列的计算结果与每个组的类型不一致:组4的结果具有类型为“integ

  • 我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。