Kotlin-js:定义小数位数

让我们来想像这样的事情:

var num: Float = 0.0f num = 2.4 * 3.5 / 3.8 

num有几个小数,但我只想要2。

在JS中我会使用num.toFixed(2)

其他答案在这里建议使用"%.2f".format(num)num.format(2) 。 后者需要一个自定义扩展的乐趣:

 fun Double.format(digits: Int) = java.lang.String.format("%.${digits}f", this) 

但是,这些选项中的任何一个都会导致“未解析的引用”的编译器错误。 我不认为是一个进口问题导致编译器会建议。

有没有一个简单的方法来做到这一点?

JS的Kotlin标准库还没有像Double.format这样的东西,但是你可以用上面提到的toFixed函数来实现它:

 fun Double.format(digits: Int): String = this.asDynamic().toFixed(digits) fun Float.format(digits: Int): String = this.asDynamic().toFixed(digits) 

这是可行的,因为Kotlin中的DoubleFloat在JS中用Number数据类型表示,因此可以在这些类型的实例上调用toFixed()函数。