あなたがしていることに依存します。
例えば:
//bankers' rounding - midpoint goes to nearest even
GetIntPart(2.5) >> 2
GetIntPart(5.5) >> 6
GetIntPart(-6.5) >> -6
また
//arithmetic rounding - midpoint goes away from zero
GetIntPart(2.5) >> 3
GetIntPart(5.5) >> 6
GetIntPart(-6.5) >> -7
デフォルトは常に前者です。これは驚きかもしれませんが、非常に理にかなっています。
明示的なキャストは次のことを行います。
int intPart = (int)343564564.5
// intPart will be 343564564
int intPart = (int)343564565.5
// intPart will be 343564566
あなたが質問を言った方法から、これはあなたが望むものではないように聞こえます-あなたは毎回それを床に置きたいです。
私はします:
Math.Floor(Math.Abs(number));
また、サイズも確認してください。decimal
かなり大きくなる可能性があるため、を使用する必要がある場合がありますlong
。