C#のMath.BigMulメソッドとは?使い方をサンプルコード付きで解説
C#のMath.BigMul()メソッドを使うと、2つの32ビット整数(int型)の積を求めることができます。通常の乗算ではオーバーフローしてしまうような大きな値同士の掛け算でも、結果を64ビット整数(long型)として正確に取得できるのが大きな特徴です。
Math.BigMulメソッドの基本
Math.BigMul(int a, int b)は、引数として渡された2つのint型の完全な積をlong型で返します。2つのint型の積は最大で約9.2×1018になる可能性があり、int型の範囲(約±21億)では表現しきれないため、戻り値は必ずlong型で受け取る必要があります。
サンプルコード
まず、掛け合わせる2つの数値を用意します。
int one = 345272828; int two = 887685744;
次に、Math.BigMul()メソッドを使って積を求めます。
long res; res = Math.BigMul(one, two);
完全なプログラム例
using System;
class Demo {
static void Main() {
int one = 345272828;
int two = 887685744;
long res;
res = Math.BigMul(one, two);
Console.WriteLine("{0} * {1} = {2}", one, two, res);
}
}
実行結果
345272828 * 887685744 = 306493767206164032
まとめ
このように、Math.BigMul()メソッドを使用すれば、int型同士の乗算結果をlong型としてオーバーフローなしに正確に計算できます。もし通常の*演算子で同じ計算を行うと、結果がint型の範囲を超えてしまい、意図しない値になってしまう恐れがあります。大きな数値を扱う科学技術計算や金額計算などの場面で、ぜひ活用してみてください。
-
C#のMath.Exp()メソッドの使い方を徹底解説!eの累乗計算と特殊値の挙動
C#のMath.Exp()メソッドは、自然対数の底「e」(ネイピア数、約2.71828)を指定した値で累乗した結果を返すメソッドです。数学的な指数関数の計算が必要な場面で活用されます。構文public static double Exp (double val);引数 val には、eの累乗の指数となる倍精度浮動小数点数(double型)を指定します。戻り値もdouble型です。特殊な値が渡された場合の挙動NaN(非数)またはPositiveInfinity(正の無限大)を渡した場合 → その値がそのまま返されます。NegativeInfinity(負の無限大)を渡した場合 → 0 が返されま
-
C#のMath.BigMulメソッドとは?使い方をサンプルコード付きで解説
C#のMath.BigMul()メソッドを使うと、2つの32ビット整数(int型)の積を求めることができます。通常の乗算ではオーバーフローしてしまうような大きな値同士の掛け算でも、結果を64ビット整数(long型)として正確に取得できるのが大きな特徴です。 Math.BigMulメソッドの基本 Math.BigMul(int a, int b)は、引数として渡された2つのint型の完全な積をlong型で返します。2つのint型の積は最大で約9.2×1018になる可能性があり、int型の範囲(約±21億)では表現しきれないため、戻り値は必ずlong型で受け取る必要があります。 サンプルコード