モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

Scala 数値処理の知識

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2016/02/13
最終更新最終更新
2018/06/18
記事区分記事区分
一般公開

汎用関数

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
  }
}
Likeボタン(off)0
詳細設定を開く/閉じる
アカウント プロフィール画像

Scalaはいいぞ

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

>>さらに詳しくステッカーを贈る
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    ログインする

    関連記事

    • Scala 文字列の処理
      書式指定 object Main { def main(args: Array[String]): Unit = { println("%d + %d = %d".format(1, 1, 2)) //=> 1 + 1 = 2 } } 文字列の比較 ヒアドキュメント 他の言語でいう「ヒアドキュメント」のようなものは """ で囲うことで実現できます。 object Main ...
      したくんしたくん6/18/2018に更新
      いいねアイコン画像0
    • 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...
      したくんしたくん6/5/2018に更新
      いいねアイコン画像0
    • 酢豚の基本的な使い方 (sbt)
      sbt は Scala および Java を主な対象としたビルドツールです。Scala Build Tool の略ではありませんが、Simple Build Tool という明示的な記述も公式ドキュメントなどには見当りません。以下 sbt の基本的な使用例をまとめます。使用した sbt のバージョンは 0.13 です。 公式ドキュメント [sbt 0.13](http://www.scala-sb...
      ねこねこ6/30/2018に更新
      いいねアイコン画像0
    • Scala 関数のサンプルコード
      「デフォルト引数」および「Unit 型を返す関数」 object HelloWorld { def main(args: Array[String]): Unit = { def myPrint(myArg: String = "default_value") = println(myArg + "!") val result = myPrint() //=> defau...
      したくんしたくん6/26/2018に更新
      いいねアイコン画像0
    • Scala 組み込みの制御構造
      if-else 条件分岐で知られる if-else は三項演算子のようにも使用されます。 object HelloWorld { def main(args: Array[String]): Unit = { val myVal = if (!args.isEmpty) args(0) else "default" println(myVal) } ...
      したくんしたくん10/7/2021に更新
      いいねアイコン画像0