.NET 小数点以下を切り捨てる
C#、VB.NETで小数点以下を切り捨てる場合は、「Math.Floor」と「Math.Ceiling」メソッドを組み合わせ、用途に合わせてメソッドを自作する必要があります。
/// <summary>
/// 値の小数部を切り捨て、指定の桁数に丸めます
/// </summary>
/// <param name="value">値</param>
/// <param name="decimals">小数部桁数</param>
/// <returns>丸められた値</returns>
private double Truncate(double value, int decimals)
{
// 小数部桁数の10の累乗を取得
double pow = Math.Pow(10, decimals);
return 0 <= value ? Math.Floor(value * pow) / pow :
Math.Ceiling(value * pow) / pow;
}
上記Truncateメソッドは、符号を無視して絶対値を切り捨てる(常に0へ近づく)丸めになります。
このページでは、上記Truncateメソッドを実際に動かした時の挙動を確認できます。
値と、小数点以下の桁数を入力し実行ボタンをクリックすると、小数部を指定された桁数に成型した値を実行結果に表示します(小数点第二位までに成型したい場合は小数部桁数へ「2」を指定します)。
以下にTruncateメソッドの挙動をまとめました。「試す」ボタンをクリックすると、書式を入力エリアにコピーしますので、実際の動きを確認することができます。
●書式一覧
●書式一覧
内容 | 書式 | 結果 | 試す |
100.345を小数点第二位までに成型(小数点第三位を切り捨て) | Truncate(100.345, 2); | 100.34 | |
-100.345を小数点第二位までに成型(小数点第三位を切り捨て) | Truncate(-100.345, 2); | -100.34 |
コメントはまだありません。