ser*_*0ne 5 floating-point kotlin
在 Kotlin 中123.456是一个有效值Double,但是,123.456F.toDouble()导致123.45600128173828- 大概只是在两者之间处理精度的方式。
我希望能够在两者之间自由转换,特别是对于这样的情况:
123.456F -> 123.456 // Float to Double
123.456 -> 123.456F // Double to Float
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何将浮点数转换为双精度数并保持精度?
这是一个很大的丑陋,但您可以将您的转换Float为 aString并返回到 a Double:
val myDouble: Double = 123.456f.toString().toDouble()
// 123.456d
Run Code Online (Sandbox Code Playgroud)
您始终可以将其封装在扩展函数中:
fun Float.toExactDouble(): Double =
this.toString().toDouble()
val myDouble = 123.456f.toExactDouble()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |