kotlin - Kotlin - 在保持精度的同时将浮点数转换为双精度数
问题描述
在 Kotlin123.456
中是一个有效的Double
值,但是,123.456F.toDouble()
结果123.45600128173828
- 大概只是两者之间处理精度的方式。
我希望能够在两者之间自由转换,特别是对于这样的情况:
123.456F -> 123.456 // Float to Double
123.456 -> 123.456F // Double to Float
在这种情况下,如何将浮点数转换为双精度并保持精度?
解决方案
这是一个很大的丑陋,但您可以将您的转换Float
为 aString
并返回到 a Double
:
val myDouble: Double = 123.456f.toString().toDouble()
// 123.456d
您始终可以将其封装在扩展函数中:
fun Float.toExactDouble(): Double =
this.toString().toDouble()
val myDouble = 123.456f.toExactDouble()
推荐阅读
- r - 使用 lmer - 混合模型仅为一个嵌套组指定随机斜率
- ruby-on-rails - 结构转储和结构加载
- mysql - MySQL 基于客户的不同字段计数
- javascript - 如何在 Input 中设置值并选择
- c++ - 替代获取标准库函数的地址/可能是格式错误的行为
- javascript - 创建一个数组,其中包含对特定数字求和所需的数字
- python - 使用 PIL (python) 将图像数据集加载到内存中会消耗太多内存
- php - 使用 PHP 检查 SSL 证书哈希
- c - scanf("%d/%d/%d) 在 C 中是什么意思?
- flutter - 如何在 Flutter 中访问 GridView 中特定项目的索引?