Kat*_*ers 5 java floor ceil pow
我知道在 Java(可能还有其他语言)中,Math.pow 是在双精度上定义的并返回一个双精度。我想知道为什么编写 Java 的人没有也编写一个返回 int 的 pow(int, int) 方法,这对于这位数学家出身的新手程序员来说就像是拍额头(尽管显然很容易修复) ) 遗漏。我不禁想到,基于 CS 的复杂性,有一些我不知道的幕后原因,因为否则……嗯?
在类似的主题上, ceil 和 Floor根据定义返回整数,那么它们为什么不返回整数呢?
感谢大家帮助我理解这一点。这完全是小事,但多年来一直困扰着我。
java.lang.Math 只是 C 数学库功能的一个端口。
对于 C,我认为这可以归结为 CPU 有特殊指令来对浮点数(但不能对整数)执行 Math.pow。
当然,该语言仍然可以添加int实现。事实上,BigInteger 有一个。这也是有道理的,因为pow往往会产生相当大的数字。
ceil 和 Floor 根据定义返回整数,那么为什么它们不返回整数
浮点数可以表示 范围之外的整数int。因此,如果您接受的double参数太大而无法放入int,则没有好方法来floor处理它。
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |