この中には E や PI などの定数、三角関数、双曲線関数、べき乗、対数、丸め、符号と絶対値が含まれています。
試しに全部使ってみました。基本 Float を使ってますが Double も用意されています。
- package net.yanzm.sample
- import kotlin.math.*
- fun main(args: Array<string>) {
- println(E) // 2.718281828459045
- println(PI) // 3.141592653589793
- // unit in the last place
- println(PI.ulp) // 4.440892098500626E-16
- // the remainder of division
- println(10f.IEEErem(3f)) // 1.0
- //
- // sign and absolute value
- //
- println(10.sign) // 1
- println((-10).sign) // -1
- println(sign(10f)) // 1.0
- println(sign(-10f)) // -1.0
- println((1.1f).withSign(-2f)) // -1.1
- println((1.1f).withSign(2f)) // 1.1
- println((-1.1f).withSign(-2f)) // -1.1
- println((-1.1f).withSign(2f)) // 1.1
- println(10.absoluteValue) // 10
- println((-10).absoluteValue) // 10
- println(abs(10)) // 10
- println(abs(-10)) // 10
- //
- // rounding
- //
- println(ceil(1.1f)) // 2.0
- println(ceil(1.5f)) // 2.0
- println(ceil(-1.1f)) // -1.0
- println(ceil(-1.5f)) // -1.0
- println(floor(1.1f)) // 1.0
- println(floor(1.5f)) // 1.0
- println(floor(-1.1f)) // -2.0
- println(floor(-1.5f)) // -2.0
- println(truncate(1.1f)) // 1.0
- println(truncate(1.5f)) // 1.0
- println(truncate(-1.1f)) // -1.0
- println(truncate(-1.5f)) // -1.0
- println(round(1.1f)) // 1.0
- println(round(1.5f)) // 2.0
- println(round(-1.1f)) // -1.0
- println(round(-1.5f)) // -2.0
- println((1.1f).roundToInt()) // 1
- println((1.5f).roundToInt()) // 2
- println((-1.1f).roundToInt()) // -1
- println((-1.5f).roundToInt()) // -2
- println((1.1f).roundToLong()) // 1L
- println((1.5f).roundToLong()) // 2L
- println((-1.1f).roundToLong()) // -1L
- println((-1.5f).roundToLong()) // -2L
- //
- // trigonometric
- //
- println(sin(PI / 2)) // 1.0
- println(asin(1f)) // 1.5707964
- println(cos(PI)) // -1.0
- println(acos(-1f)) // 3.1415927
- println(tan(PI / 4)) // 0.9999999999999999
- println(atan(1f)) // 0.7853982
- println(atan2(5f, 5f)) // 0.7853982
- //
- // hyperbolic
- //
- println(sinh(0.8813736f)) // 1.0
- println(asinh(1f)) // 0.8813736
- println(cosh(0f)) // 1.0
- println(acosh(1f)) // 0.0
- println(tanh(0.54930615f)) // 0.5
- println(atanh(0.5f)) // 0.54930615
- //
- // exponentiation and power
- //
- println(exp(0f)) // 1.0
- println(exp(1f)) // 2.7182817
- println(expm1(0f)) // 0.0
- println(expm1(1f)) // 1.7182817
- println(2f.pow(2)) // 4.0
- println(sqrt(4f)) // 2.0
- // sqrt(x^2 + y^2)
- println(hypot(3f, 4f)) // 5.0
- //
- // logarithmic
- //
- println(ln(E)) // 1.0
- println(ln(1f)) // 0.0
- // ln(x + 1)
- println(ln1p(E - 1)) // 1.0
- println(ln1p(0f)) // 0.0
- println(log(10f, 10f)) // 1.0
- println(log(1f, 10f)) // 0.0
- println(log(2f, 2f)) // 1.0
- println(log(1f, 2f)) // 0.0
- // log(x, 10)
- println(log10(10f)) // 1.0
- println(log10(1f)) // 0.0
- // log(x, 2)
- println(log2(2f)) // 1.0
- println(log2(1f)) // 0.0
- //
- // max, min
- //
- println(max(1, 2)) // 2
- println(max(1f, 2f)) // 2.0
- println(min(1, 2)) // 1
- println(min(1f, 2f)) // 1.0
- //
- // nearest
- //
- println((1.1f).nextDown()) // 1.0999999
- println((-1.1f).nextDown()) // -1.1000001
- println((1.1f).nextUp()) // 1.1000001
- println((-1.1f).nextUp()) // -1.0999999
- println((1.1f).nextTowards(0f)) // 1.0999999
- println((-1.1f).nextTowards(0f)) // -1.0999999
- }
- </string>