gpt4 book ai didi

java - 为什么 math.pow 本身不能处理整数? (地板/天花板也是)

转载 作者:搜寻专家 更新时间:2023-11-01 02:44:54 26 4
gpt4 key购买 nike

我知道在 Java(可能还有其他语言)中,Math.pow 是在 double 上定义的并返回一个 double 。我想知道到底为什么写 Java 的人不也写一个返回 int 的 pow(int, int) 方法,在这个数学家出身的新手程序员看来就像拍额头(虽然显然很容易修复)遗漏。我不禁认为,基于 CS 的复杂性,我不知道有一些幕后原因,否则……嗯?

在类似的主题上,ceil 和 floor 根据定义 返回整数,那么它们为什么不返回整数呢?

感谢所有帮助我理解这一点的人。这完全是次要的,但多年来一直困扰着我。

最佳答案

java.lang.Math 只是 C 数学库功能的一部分。

对于 C,我认为归根结底是因为 CPU 有特殊的指令来对 float (但不是整数)执行 Math.pow。

当然,该语言仍然可以添加一个int 实现。事实上,BigInteger 有一个。这也很有意义,因为 pow 往往会产生相当大的数字。

ceil and floor by definition return integers, so how come they don't return ints

float 可以表示 int 范围之外的整数。因此,如果您采用的 double 参数太大而无法放入 int 中,则 floor 没有很好的方法来处理它。

关于java - 为什么 math.pow 本身不能处理整数? (地板/天花板也是),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com