Насколько я знаю, точное сравнение не имеет большого смысла со значениями с плавающей запятой, поскольку то, что должно быть 0,0001, может фактически быть чем-то вроде 0,0001000 ... 0001 ... Должен ли я реализовать свою собственную функцию сравнения, чтобы указать Точность или есть распространенная практика для этого?
Раньше я использовал следующее с C # (что, я подозреваю, все еще неверно, поскольку значение Double, вероятно, вообще не может представлять 0,0001, даже если задано как константа (как объяснил Майкл Боргвардт здесь * 1004) *)):
public static bool AlmostEquals(this double x, double y, double precision = 0.0001)
{
if (precision < 0.0)
throw new ArgumentException();
return Math.Abs(x - y) <= precision;
}
Должен ли я сделать что-то похожее в Scala?