プログラム言語 標準関数(数学系)

乱数

Random myRnd = new Random();

0 ~ 99 までの乱数を取得
int intRnd1 = myRnd.Next(maxValue: 100);
⇒ intRnd1 : 0,1 … 98,99 (0は有り。100は無い)

1 ~ 99 までの乱数を取得
int intRnd2 = myRnd.Next(minValue: 1, maxValue: 100);
⇒ intRnd1 : 1,2 … 98,99 (0,100は無い)

0.0 ~ 1.0 までの乱数を取得
double dblRnd = myRnd.NextDouble();
⇒ intRnd1 : 0.0,0,1 … 0,9,1.0

Dim myRnd = New Random()

0 ~ 99 までの乱数を取得
Dim intRnd1 As Integer = myRnd.Next(maxValue:=100)
⇒ intRnd1 : 0,1 … 98,99 (0は有り。100は無い)

1 ~ 99 までの乱数を取得
Dim intRnd2 As Integer = myRnd.Next(minValue:=0, maxValue:=100)
⇒ intRnd1 : 1,2 … 98,99 (0,100は無い)

0.0 ~ 1.0 までの乱数を取得
Dim dblRnd As Double = myRnd.NextDouble()
⇒ intRnd1 : 0.0,0,1 … 0,9,1.0

乱数の発生メカニズムを初期化
Call Randomize

※0~1の乱数を取得
Dim myRnd As Single
myRnd = Rnd()
myRnd:0.1234567

※5桁の乱数値を取得
Dim sRnd As String
sRnd = Format$(Int(Rnd() * 100000), “00000”)

5〜10までの乱数を取得
$rnd = rand(5, 10);

$ary = [
 ’php’,
 ’java’,
 ’C#’,
];
$aryのキー(0,1,2)から1つを乱数で取得
$rnd = array_rand($ary, 1);

$ary = [
 1 => ‘php’,
 3 => ‘java’,
 5 => ‘C#’,
];
$aryのキー(1,3,5)から1つを乱数で取得
$rnd = array_rand($ary, 1);

$aryのキー(1,3,5)から2つを乱数で取得
$rnd = array_rand($ary, 2);

0 ~ 99 までの乱数を取得
var dblRnd = Math.random() * 10;
⇒ intRnd1 : 0.0,0,1 … 0,9,1.0

0.0 ~ 1.0 までの乱数を取得
var dblRnd = Math.random();
⇒ intRnd1 : 0.0,0,1 … 0,9,1.0

四捨五入

echo number_format(1.92);
⇒ 2 小数点第一位を四捨五入して小数点表示なし

echo number_format(1.92, 0);
⇒ 2 ↑と同じ

echo number_format(1.92, 1);
⇒ 1.9 小数点第二位を四捨五入して小数点第一位まで表示

echo number_format(1.92, 2);
⇒ 1.92 小数点第三位を四捨五入して小数点第二位まで表示

double x1 = Math.Round(value:123.456, digits:2);
⇒ x1 : 123.46 (小数点第三位を四捨五入)

double x11 = Math.Round(1.5);
⇒ x11 : 2.0 (小数点第一位を四捨五入)
double x12 = Math.Round(1.4);
⇒ x12 : 1.0 (小数点第一位を四捨五入)
double x13 = Math.Round(1.55, 1);
⇒ x13 : 1.6 (小数点第二位を四捨五入)
double x14 = Math.Round(1.54, 1);
⇒ x14 : 1.5 (小数点第二位を四捨五入)
double x15 = Math.Round(1.555, 2);
⇒ x15 : 1.56 (小数点第三位を四捨五入)
double x16 = Math.Round(1.554, 2);
⇒ x16 : 1.55 (小数点第三位を四捨五入)

Dim x1 As Double = Math.Round(value:=123.456, digits:=2)
⇒ x1 :=123.46 (小数点第三位を四捨五入)

Dim x11 As Double = Math.Round(1.5)
⇒ x11 :=2.0 (小数点第一位を四捨五入)
Dim x12 As Double = Math.Round(1.4)
⇒ x12 :=1.0 (小数点第一位を四捨五入)
Dim x13 As Double = Math.Round(1.55, 1)
⇒ x13 :=1.6 (小数点第二位を四捨五入)
Dim x14 As Double = Math.Round(1.54, 1)
⇒ x14 :=1.5 (小数点第二位を四捨五入)
Dim x15 As Double = Math.Round(1.555, 2)
⇒ x15 :=1.56 (小数点第三位を四捨五入)
Dim x16 As Double = Math.Round(1.554, 2)
⇒ x16 :=1.55 (小数点第三位を四捨五入)

ret = Round(555.50, 0)
ret : 556

ret = Round(555.50, -1)
ret : 560

var roundValue = Math.round( “5.5” );
⇒ roundValue : 6

切り捨て

double x7 = Math.Ceiling(123.456);
⇒ x7 : 124.0 (123.456より大きい最少の整数=小数点第一位の切り捨て)
double x8 = Math.Ceiling(-123.456);
⇒ x8 : -123.0 (-123.456より大きい最少の整数=小数点第一位の切り捨て)

//少数点以下の切り上げ
decimal before = (decimal)1.2345;

decimal after3 = before * 10;
after3 = Math.Ceiling(after3);
after3 /= 10;
//⇒after3 : 1.3 =小数点第二位の切り上げ

decimal after4 = before * 100;
after4 = Math.Ceiling(after4);
after4 /= 100;
//⇒after4 : 1.24 =小数点第三位の切り上げ

Dim x7 As Double = Math.Ceiling(123.456)
⇒ x7 :=124.0 (123.456より大きい最少の整数=小数点第一位の切り捨て)
Dim x8 As Double = Math.Ceiling(-123.456)
⇒ x8 :=-123.0 (-123.456より大きい最少の整数=小数点第一位の切り捨て)

//少数点以下の切り上げ
Dim before As Decimal = CType(1.2345, Decimal)

Dim after3 As Decimal = before * 10
after3 = Math.Ceiling(after3)
after3 /= 10
⇒ after3 :=1.3 =小数点第二位の切り上げ

Dim after4 As Decimal = before * 100
after4 = Math.Ceiling(after4)
after4 /= 100
⇒ after4 :=1.24 =小数点第三位の切り上げ

ret = RoundDown(555.60, 0)
ret : 555

ret = RoundDown(555.60, -1)
ret : 550

var ceilValue = Math.ceil( 5.5 );
⇒ ceilValue : 6

切り上げ

double x9 = Math.Floor(123.456);
⇒ x9 : 123.0 (123.456より小さい最大の整数=小数点第一位の切り上げ)
double x10 = Math.Floor(-123.456);
⇒ x10 : -124.0 (-123.456より小さい最大の整数=小数点第一位の切り上げ)

//少数点以下の切り上げ
decimal before = (decimal)1.2345;

decimal after1 = before * 10;
after1 = Math.Floor(after1);
after1 /= 10;
//⇒after1 : 1.2 =小数点第二位の切り捨て

decimal after2 = before * 100;
after2 = Math.Floor(after2);
after2 /= 100;
//⇒after2 : 1.23 =小数点第三位の切り捨て

Dim x9 As Double = Math.Floor(123.456)
⇒ x9 :=123.0 (123.456より小さい最大の整数=小数点第一位の切り上げ)
Dim x10 As Double = Math.Floor(-123.456)
⇒ x10 :=-124.0 (-123.456より小さい最大の整数=小数点第一位の切り上げ)

‘少数点以下の切り上げ
Dim before As Decimal = CType(1.2345, Decimal)

Dim after1 As Decimal = before * 10
after1 = Math.Floor(after1)
after1 /= 10
⇒ after1 :=1.2 =小数点第二位の切り捨て

Dim after2 As Decimal = before * 100
after2 = Math.Floor(after2)
after2 /= 100
⇒ after2 :=1.23 =小数点第三位の切り捨て

ret = RoundUp(555.40, 0)
ret : 556

ret = RoundUp(555.40, -1)
ret : 560

var floorValue = Math.floor( 5.5 );
floorValue : 5

その他

絶対値
double x2 = Math.Abs(value: -123.456);
⇒ x2 : 123.456

最大値
int x3 = Math.Max(val1: 5, val2: 10);
⇒ x3 : 10

double x4 = Math.Max(val1: 5.5, val2: 10.3);
⇒ x4 : 10.3

最小値
int x5 = Math.Min(val1: 5, val2: 10);
⇒ x5 : 5

double x6 = Math.Min(val1: 5.5, val2: 10.3);
⇒ x6 : 5.5

絶対値
Dim x2 As Double = Math.Abs(value:=-123.456)
⇒ x2 :=123.456

最大値
Dim x3 As Integer = Math.Max(val1:=5, val2:=10)
⇒ x3 :=10

Dim x4 As Double = Math.Max(val1:=5.5, val2:=10.3)
⇒ x4 :=10.3

最小値
Dim x5 As Integer = Math.Min(val1:=5, val2:=10)
⇒ x5 :=5
Dim x6 As Double = Math.Min(val1:=5.5, val2:=10.3)
⇒ x6 :=5.5