汎用関数
import scala.math._
object Main {
def main(args: Array[String]): Unit = {
println(abs(-1)) // 絶対値
println(max(1,2)) // 最大値
println(min(1,2)) // 最小値
println(pow(2, 10)) // 乗数
println(sqrt(2.0)) // 平方根
println(floor(9.9)) //=> 9.0 (切り捨て)
println(ceil(9.9)) //=> 10.0 (切り上げ)
println(round(9.9)) //=> 10 (四捨五入)
println(E) // 自然対数
println(Pi) // 円周率
println(random) //=> [0,1) の乱数
}
}
型変換
object Main {
def main(args: Array[String]): Unit = {
// asInstanceOf による変換
var i: Int = 99
var l: Long = i.asInstanceOf[Long]
var d: Double = i.asInstanceOf[Double]
// toHoge による変換
l = i.toLong
d = i.toDouble
i = l.toInt
i = d.toInt
}
}
精度の高い計算
BigInt/BigDecimal を利用します。内部的に文字列として数値を記憶するため、桁落あふれや丸め誤差などは発生しませんが、処理速度は落ちます。
object Main {
def main(args: Array[String]): Unit = {
val bigI1 = BigInt("1234567890")
val bigI2 = BigInt("1234567890")
println(bigI1 + bigI2) //=> 2469135780
val bigD1 = BigDecimal("0.000000000000000001")
val bigD2 = BigDecimal("0.000000000000000009")
println(bigD1 + bigD2) //=> 1.0E-17
}
}
関連記事
- Scala 文字列の処理書式指定 object Main { def main(args: Array[String]): Unit = { println("%d + %d = %d".format(1, 1, 2)) //=> 1 + 1 = 2 } } 文字列の比較 ヒアドキュメント 他の言語でいう「ヒアドキュメント」のようなものは """ で囲うことで実現できます。 object Main ...
- Scala 日付に関する処理Date クラスを文字列にフォーマット import java.util.Date object Main { def main(args: Array[String]): Unit = { // format は Date に限らない文字列用の機能です。 println("%d-%d-%d" format (1, 1, 1)) //=> 1-1-1 printl...
- 酢豚の基本的な使い方 (sbt)sbt は Scala および Java を主な対象としたビルドツールです。Scala Build Tool の略ではありませんが、Simple Build Tool という明示的な記述も公式ドキュメントなどには見当りません。以下 sbt の基本的な使用例をまとめます。使用した sbt のバージョンは 0.13 です。 公式ドキュメント [sbt 0.13](http://www.scala-sb...
- Scala 関数のサンプルコード「デフォルト引数」および「Unit 型を返す関数」 object HelloWorld { def main(args: Array[String]): Unit = { def myPrint(myArg: String = "default_value") = println(myArg + "!") val result = myPrint() //=> defau...
- Scala 組み込みの制御構造if-else 条件分岐で知られる if-else は三項演算子のようにも使用されます。 object HelloWorld { def main(args: Array[String]): Unit = { val myVal = if (!args.isEmpty) args(0) else "default" println(myVal) } ...