让我们想象一下这样的事情:
var num: Float = 0.0f
num = 2.4 * 3.5 / 3.8
Run Code Online (Sandbox Code Playgroud)
num 有几个小数,但我只想要2.
在JS我会用num.toFixed(2).
这里的其他答案建议使用"%.2f".format(num)或num.format(2).后者需要自定义扩展乐趣:
fun Double.format(digits: Int) = java.lang.String.format("%.${digits}f", this)
Run Code Online (Sandbox Code Playgroud)
但是,这些选项中的任何一个都会导致"未解析的引用"的编译器错误.我不认为是进口的问题,因为编译器会建议它.
是否有捷径可寻?
用于JS的Kotlin标准库还没有任何类似的功能Double.format,但您可以toFixed使用javascript中提供的上述功能轻松实现它:
fun Double.format(digits: Int): String = this.asDynamic().toFixed(digits)
fun Float.format(digits: Int): String = this.asDynamic().toFixed(digits)
Run Code Online (Sandbox Code Playgroud)
这工作,因为Double和Float在科特林与代表Number的JS数据类型,所以你可以调用toFixed()这些类型的实例功能.
| 归档时间: |
|
| 查看次数: |
1153 次 |
| 最近记录: |