Trata-se de uma comparação flutuante válida que representa um número definido de casas decimai

Estou escrevendo um método de extensão para comparar dois carros alegóricos usando um número definido de pontos decimais (números significativos) para determinar se são iguais em vez de uma diferença de tolerância ou porcentagem. Examinando as outras questões relacionadas à comparação de flutuadores, vejo implementações complexas. Simplifiquei demais ou isso é válido?

/// <summary>
/// Determines if the float value is equal to (==) the float parameter according to the defined precision.
/// </summary>
/// <param name="float1">The float1.</param>
/// <param name="float2">The float2.</param>
/// <param name="precision">The precision.  The number of digits after the decimal that will be considered when comparing.</param>
/// <returns></returns>
public static bool AlmostEquals(this float float1, float float2, int precision = 2)
{
    return (Math.Round(float1 - float2, precision) == 0);
}

Nota Estou procurando uma comparação em casas decimais, não tolerância. Não quero que 1.000.000 sejam iguais a 1.000.001.

questionAnswers(4)

yourAnswerToTheQuestion