2017-03-14 1 views
3

の数を定義します。Kotlin-JS:さんはこのようなものを想像してみましょう小数

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

numはいくつかの小数を持っているが、私はnum.toFixed(2)を使用することになり、私はJSでのみ2.

をしたいです。

その他の回答は、"%.2f".format(num)またはnum.format(2)を使用することをお勧めします。後者はカスタム拡張の楽しさを必要とする:

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

しかし、これらのオプションのいずれかが「未解決の参照」のコンパイルエラーにつながります。私は、コンパイラがそれを示唆している輸入品の問題だとは思わない。

これを行う簡単な方法はありますか? JSのため

+0

KotlinをJSにコンパイルしようとしていることを正しく理解しましたか? – bashor

+0

はい、それは彼らがやっていることです。 – zsmb13

答えて

7

Kotlin標準ライブラリはまだDouble.formatのようなものを持っていませんが、JavaScriptで利用できる前述のtoFixed機能を簡単に実装できます。KotlinでDoubleFloatがで表現されているので、これは動作します

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

Number JSのデータ型であるため、toFixed()をこれらの型のインスタンスで呼び出すことができます。

+0

ニース!それはうまくいきました。しかし、あなたは 'toFixed()'の呼び出しを間違えますが、 'format()'を呼び出さなければなりません。したがって、私の例では 'num.format(2)'となります。また、これは 'Float'を' String'に変換するので、それを印刷しなければならないときによく呼び出されます – eloo

関連する問題