Created
September 15, 2012 10:11
-
-
Save sasaki-shigeo/3727245 to your computer and use it in GitHub Desktop.
Numeric Constants in Scala (Scala の数値定数)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Int.MaxValue // Int の最大値 | |
Int.MinValue // Int の最小値 | |
Long.MaxValue // Long の最大値 | |
Long.MinValue // Long の最小値 | |
Byte.MaxValue // Byte の最大値 | |
Byte.MinValue // Byte の最小値 | |
Short.MaxValue // Short の最大値 | |
Short.MinValue // Short の最小値 | |
Float.MaxValue // Float の最大値 | |
Float.MinValue // Float の最小値; -Float.MaxValue と同じ | |
Float.MinPositiveValue // 最小の正の値(非正規化数) | |
Float.PositiveInfinity // 正の無限大 | |
Float.NegativeInfinity // 負の無限大 | |
Float.NaN // 非数 (Not a Number) | |
Double.MaxValue // Double の最大値 | |
Double.MinValue // Double の最小値; -Double.MaxValue と同じ | |
Double.MinPositiveValue // 最小の正の値(非正規化数) | |
Double.PositiveInfinity // 正の無限大 | |
Double.NegativeInfinity // 負の無限大 | |
Double.NaN // 非数 (Not a Number) | |
// 正の無限大を printf すると Infinity になるが,Scala のリテラルではないので,上記のように書かなければならない。 | |
// 同様に非数を printf すると NaN になるが,プログラム上では上記のように書かなければならない。 | |
math.Pi // 円周率 π | |
math.E // 自然対数の底 e | |
// 円周率は PI ではないので注意 | |
// 次も可 | |
java.lang.Math.PI // Java の標準パッケージで定義されている円周率 | |
java.lang.Math.E // Java の標準パッケージで定義されている自然対数の底 | |
// ULP: Unit in the Last Place -- 最後の桁の大きさ | |
// ulp(x) は浮動小数点数演算において x + ε > 0 を満たす最小の ε である。 | |
// 絶対値が ε 未満の数値は浮動小数点演算において誤差として無視され, | |
// x に加えても値は変わらない。 | |
// x == 1.0 のとき,いわゆるマシン・エプシロンになる | |
math.ulp(1.0f) // Float のマシン・エプシロン | |
math.ulp(1.0) // Double のマシン・エプシロン | |
// The minimal positive normal number -- 最小の正の正規化数 | |
// IEEE 754 により次のように定められている。 | |
// Float の場合 2 ^ (-126) | |
// Double の場合 2 ^ (-1022) | |
// | |
// 非正規化数の ULP と最小の正規化数の ULP は同じであることに注意 | |
math.pow(2, -126).toFloat // IEEE754 単精度における 最小の正規化数 | |
math.pow(2, -1022) // IEEE754 倍精度における 最小の正規化数 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment