コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】指定した倍数で四捨五入のように丸める関数

ソースコード

public static class MathUtils
{
    public static double RoundByMultiple( double value, double unit )
    {
        return Math.Round( value / unit ) * unit;
    }
}

使用例

Console.WriteLine( MathUtils.RoundByMultiple( 0.26, 0.25 ) );   // 0.25
Console.WriteLine( MathUtils.RoundByMultiple( 0.374, 0.25 ) );  // 0.25
Console.WriteLine( MathUtils.RoundByMultiple( 0.376, 0.25 ) );  // 0.5
Console.WriteLine( MathUtils.RoundByMultiple( -0.26, 0.25 ) );  // -0.25
Console.WriteLine( MathUtils.RoundByMultiple( -0.374, 0.25 ) ); // -0.25
Console.WriteLine( MathUtils.RoundByMultiple( -0.376, 0.25 ) ); // -0.5