例如,在以下代码段中:
float roll = (float)Math.atan2(sinr, cosr);
Math.atan2返回一个double,因此我将其强制转换为float。但是,我使用的大多数函数都返回double类型,这使我不得不频繁地进行转换变得很乏味,这让我觉得我使用的库是错误的。我需要float类型的数据来与其他也使用float的类一起工作。
我想知道为什么没有多个版本的Math函数将double转换为float,从而允许返回float而不是double(如果需要)。我知道为什么数学不应该直接在浮点数中,但是对于只使用浮点数的程序员来说,该库似乎不灵活。
为什么该库通常返回double类型?
答案 0 :(得分:0)
您实际上并不需要第三方库:
class FloatMath {
float atan2(float y, float x) {
return (float) Math.atan2(y, x);
}
// etc, for other methods.
}
您只能为所需的方法编写这样的委托方法。然后只需在java.lang.Math
处调用它即可。
但是,您强烈应该考虑采用另一种方法:直接使用java.lang.Math
,然后将需要float
的库调用包装在类似立面的后面。