Math.Floorとキャストを整数型にするのは何らかの理由がありますか?Math.FloorとC#の整数型へのキャスト
double num;
double floor = Math.Floor(num);
OR
double num;
long floor = (long)num;
Math.Floorとキャストを整数型にするのは何らかの理由がありますか?Math.FloorとC#の整数型へのキャスト
double num;
double floor = Math.Floor(num);
OR
double num;
long floor = (long)num;
整数型にキャストし、Math.Floorを使用していくつかの違いがあります。
Math.Floor
それは違った負の数を処理するための切り捨てとは根本的に異なる操作です。 Math.Floor(-1.5) == -2.0
であり、である。
それが負の値のために異なります
double num = -1.3;
double floor = Math.Floor(num); // = -2
long cast = (long)num; // = -1
、Floor
が成功する場所というキャストが失敗する可能性がありますことを忘れないでください:
decimal d = decimal.MaxValue;
decimal f = Math.Floor(d); // succeeds
long l = (long)d; // fails
@DanielHilgarthはそれを逃しました+1。 ta – Kaf