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中的Double
和Float
在JS中用Number
数据类型表示,因此可以在这些类型的实例上调用toFixed()
函数。
- Kotlin:只读不可变types对可变types的内部variables的访问
- 如何有条件地在RxJava流中添加一个异步操作?
- Kotlin可重复@annotations不能在jdk-8上工作
- 类型推断失败:RecyclerViewActions.scrollTo()
- Kotlin \ Java – 如何获取更改的数组元素的总和
- Kotlin:通过Kotlin中的Data类在Java类中设置一个私有布尔值。 为什么我无法做到这一点?
- 从Java转换到Kotlin时出错。 错误 – org.gradle.api.tasks.TaskExecutionException:任务执行失败:app:compileDebugKotlin'
- 如何从Corda的自定义表中获取数据
- 当我退出应用程序时,为什么在Android应用程序中使用Kotlin / rxJava编写android.os.TransactionTooLargeException? (的OnExit /的onPause)?