В коде встретил такое округление:
static class TraceConvertor
{
public const double ValueTolerance = 1e-2;
public const int ValueDigitTolerance = 2;
[ MethodImpl( MethodImplOptions.AggressiveInlining ) ]
public static double RoundByTolerance( double value )
{
return Math.Round( value / ValueTolerance ) * ValueTolerance;
}
[ MethodImpl( MethodImplOptions.AggressiveInlining ) ]
public static double RoundByDigitTolerance( double value )
{
return Math.Round( value, ValueDigitTolerance );
}
}
Первый метод мне достался в наследство, второй мой.
Я не вижу никакой разницы. Но зачем то сделано именно так, может я чего-то не понимаю и первый вариант будет быстрее?