算術演算

注意:
この文書は以前「.NETでいきまっしょい!」で公開していたものですが、公開以降メンテナンスされていません。 今や古い情報となった内容が記載されている場合があるのでご注意ください。
 多くの算術演算関数はMathクラスに共有メソッドとして存在します。 ここではその使い方を見ていきます。

絶対値・符号

 絶対値を取得するにはAbs()メソッド、値の符号(正負)を取得するにはSign()メソッドを利用します。
001
002
003
004
005
006
007
' 絶対値
Console.WriteLine("Abs(-1) = {0}", Math.Abs(-1))
Console.WriteLine("Abs(3.14) = {0}", Math.Abs(3.14))

' 符号
Console.WriteLine("Sign(-2) = {0}", Math.Sign(-2))
Console.WriteLine("Sign( 5) = {0}", Math.Sign(5))
出力結果
Abs(-1) = 1
Abs(3.14) = 3.14
Sign(-2) = -1
Sign( 5) = 1

小数点の丸め

 MathクラスのCeiling()、Floor()、Round()メソッドを使うことで浮動小数点値を整数に丸めることができます。
001
002
003
004
005
006
007
008
009
010
011
012
Dim value As Double
Dim ceiling, floor, round As Double

For value = -2.0 To 2.0 Step +0.25

    ceiling = Math.Ceiling(value)
    floor = Math.Floor(value)
    round = Math.Round(value)

    Console.WriteLine("Value: {0:F2}, {1:F2} {2:F2} {3:F2}", value, ceiling, floor, round)

Next
出力結果
Value: -2.00, -2.00 -2.00 -2.00
Value: -1.75, -1.00 -2.00 -2.00
Value: -1.50, -1.00 -2.00 -2.00
Value: -1.25, -1.00 -2.00 -1.00
Value: -1.00, -1.00 -1.00 -1.00
Value: -0.75, 0.00 -1.00 -1.00
Value: -0.50, 0.00 -1.00 0.00
Value: -0.25, 0.00 -1.00 0.00
Value: 0.00, 0.00 0.00 0.00
Value: 0.25, 1.00 0.00 0.00
Value: 0.50, 1.00 0.00 0.00
Value: 0.75, 1.00 0.00 1.00
Value: 1.00, 1.00 1.00 1.00
Value: 1.25, 2.00 1.00 1.00
Value: 1.50, 2.00 1.00 2.00
Value: 1.75, 2.00 1.00 2.00
Value: 2.00, 2.00 2.00 2.00
 Ceiling()は「指定された数以上の数のうち、最小の整数」、Floor()は「指定された数以下の数のうち、最大の整数」、Round()は「指定した値に最も近い整数」を返します。 ただ、Round()は単純に四捨五入ではないので注意が必要です。
001
002
003
004
005
006
007
Dim value As Double

For value = 0.0 To 2.0 Step +0.1

    Console.WriteLine("Value: {0:F2}, {1:F2}", value, Math.Round(value))

Next
出力結果
Value: 0.00, 0.00
Value: 0.10, 0.00
Value: 0.20, 0.00
Value: 0.30, 0.00
Value: 0.40, 0.00
Value: 0.50, 0.00
Value: 0.60, 1.00
Value: 0.70, 1.00
Value: 0.80, 1.00
Value: 0.90, 1.00
Value: 1.00, 1.00
Value: 1.10, 1.00
Value: 1.20, 1.00
Value: 1.30, 1.00
Value: 1.40, 1.00
Value: 1.50, 2.00
Value: 1.60, 2.00
Value: 1.70, 2.00
Value: 1.80, 2.00
Value: 1.90, 2.00
 Round()メソッドの挙動について、MSDNライブラリには「指定された値が 2 つの整数(一方の整数が偶数でもう一方が奇数)の中間にある場合は偶数が返されます」とあります。

累乗・平方根

 累乗を計算するにはPow()メソッドを使用します。 また、平方根を求めるにはSqrt()メソッドを使用します。 ただ、VB.NETには^演算子が存在するので、これらのメソッドを使用しなくても累乗・平方根などを算出することができます。
001
002
003
004
005
006
007
008
009
010
011
Console.WriteLine(Math.Pow(2, 3))
Console.WriteLine(2 ^ 3)

Console.WriteLine(Math.Pow(3, 2))
Console.WriteLine(3 ^ 2)

Console.WriteLine(Math.Sqrt(2))
Console.WriteLine(2 ^ 0.5)

Console.WriteLine(Math.Sqrt(144))
Console.WriteLine(144 ^ 0.5)
出力結果
8
8
9
9
1.4142135623731
1.4142135623731
12
12

対数・eの累乗

 対数を取るには、Log10()メソッドないしLog()メソッドを使用します。 異なる底の対数を取るにはこれらを組み合わせて底の変換を行います。 ちなみに、Math.Eフィールドに自然対数の底eの値が格納されています。 また、Exp()メソッドを使用するとeの累乗を求めることができます。
001
002
003
004
005
006
007
008
009
Console.WriteLine(Math.Log10(2))
Console.WriteLine(Math.Log10(3))

Console.WriteLine(Math.Log(2.7182818))

Console.WriteLine(Math.E)

Console.WriteLine(Math.Exp(1.0))
Console.WriteLine(Math.Exp(2.0))
出力結果
0.301029995663981
0.477121254719662
0.999999989530502
2.71828182845905
2.71828182845905
7.38905609893065

三角関数

 三角関数は次のように使用します。 ちなみに、円周率πはMathクラスのフィールドとして存在するのでここから取得することができます。
001
002
003
Console.WriteLine("Sin(π/6) = {0}", Math.Sin(Math.PI / 6))
Console.WriteLine("Cos(π/4) = {0}", Math.Cos(Math.PI / 4))
Console.WriteLine("Tan(π/3) = {0}", Math.Tan(Math.PI / 3))
出力結果
Sin(π/6) = 0.5
Cos(π/4) = 0.707106781186548
Tan(π/3) = 1.73205080756888
 逆三角関数は次の通りです。
001
002
003
Console.WriteLine("Asin(0.5) = {0}", Math.Asin(0.5))
Console.WriteLine("Acos(0.7071) = {0}", Math.Acos(0.7071))
Console.WriteLine("Atan(1.0) = {0}", Math.Atan(1.0))
出力結果
Asin(0.5) = 0.523598775598299
Acos(0.7071) = 0.785407753397449
Atan(1.0) = 0.785398163397448
 このほかにも双曲線関数を使用することもできます。