変換するための最良の方法は何であるdouble
にはint
?キャストを使用する必要がありますか?
etc.
:)
変換するための最良の方法は何であるdouble
にはint
?キャストを使用する必要がありますか?
etc.
:)
回答:
デフォルトのゼロに切り捨てる動作が必要な場合は、キャストを使用できます。また、あなたが使用することをお勧めしますMath.Ceiling
、Math.Round
、Math.Floor
など-あなたはまだ、その後、キャストが必要になりますが。
の範囲がの範囲int
よりもはるかに小さいことを忘れないでくださいdouble
。以下からのキャストdouble
には、int
値の範囲外にある場合は例外をスローしませんint
未確認のコンテキストでの呼び出しに対し、Convert.ToInt32(double)
意志。値が範囲外の場合、(チェックされていないコンテキストでの)キャストの結果は明示的に未定義です。
int
32ビットマシンと64ビットマシンのどちらを使用しているかに関係なく、anのサイズは常に32ビットです。
intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));
using System;
はファイルの先頭にあるはずですが、その時点でそれが正しい可能性がありますintVal = Convert.ToInt32(Math.Floor(dblVal));
using
ディレクティブについて学ぶことです。
キャストを使用する場合、つまり(int)SomeDouble
、小数部分を切り捨てます。つまり、SomeDouble
4.9999の場合、結果は5ではなく4になります。intに変換しても数値は丸められません。丸めが必要な場合Math.Round
ここに完全な例があります
class Example
{
public static void Main()
{
double x, y;
int i;
x = 10.0;
y = 3.0;
// cast double to int, fractional component lost (Line to be replaced)
i = (int) (x / y);
Console.WriteLine("Integer outcome of x / y: " + i);
}
}
数値をより近い整数に丸める場合は、次のようにします。
i = (int) Math.Round(x / y); // Line replaced
私のやり方は:
- Convert.ToInt32(double_value)
- (int)double_value
- Int32.Parse(double_value.ToString());
double_value = 0.1