java - float 数学类的替代品

标签 java android kotlin

使用这种风格的函数会产生性能问题吗?:

*fun sqrt(x: Float) = Math.sqrt(x.toDouble()).toFloat()*

*fun cos(angle: Float) = Math.cos(angle.toDouble()).toFloat()*

*fun sin(angle: Float) = Math.sin(angle.toDouble()).toFloat()*

与 Floats 一起使用:

*sqrt(45.0f)*

*cos(1.58f)*

*sin(0.28f)*

而不是更冗长:

*Math.sqrt(45.0f.toDouble()).toFloat()*

*Math.cos(1.58f.toDouble()).toFloat()*

*Math.sin(0.28f.toDouble()).toFloat()*

提前问候和感谢

最佳答案

使用包装器应该没有性能问题

由于调用这些函数(它们是静态调度的,就像任何实用方法一样),性能可能会略有下降。

如果您在 代码中使用包装器,那么您可以内联它们:

inline fun sqrt(x: Float) = Math.sqrt(x.toDouble()).toFloat()

对于内联函数,字节码与 Java 生成的字节码没有什么不同。

关于java - float 数学类的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861968/

相关文章:

3rd 方库中的 java applet AccessControlException

java - Android - 文件下载问题 - 文件不完整

java - 如何在两个空洞之间共享变量/任何东西?

android - 任务 ':app:kaptDebugKotlin' 执行失败。清理构建时

intellij-idea - Kotlin @Serializable注释在IntelliJ中不起作用

android - 广播接收器没有收到额外的东西

java - java 幕后对象创建(java 对象实例化)

java.lang.可抛出的 : addInArray in RecyclerView

java - 当 Java 作为客户端和 Android 作为服务器时,ServerSocket 不工作

java - 在操作调用中生成 Struts 2 JSON 输出