Что нового

[Математика] Как правильно сравнить два числа (не целых)?

inx

Знающий
Сообщения
43
Репутация
12
Нужно сравнить числа: $NumOne и $NumTwo, и, если различие в любую сторону не больше $Difference, произвести некое действие.
Почему $Result не тот который ожидается и его надо округлять?
Или надо делать как-то совсем по другому?

Код:
Global $Difference = 0.1
Global $NumOne = 28
Global $NumTwo = 28.1

$Result = $NumOne - $NumTwo
If Abs($Result) <= $Difference Then
	MsgBox (0,"$Result = $NumOne - $NumTwo", $NumOne & " - " & $NumTwo & " <= " & $Difference)
EndIf


$Result = Round($NumOne - $NumTwo,2)
If Abs($Result) <= $Difference Then
	MsgBox (0,"$Result = Round($NumOne - $NumTwo,2)", $NumOne & " - " & $NumTwo & " <= " & $Difference)
EndIf
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
Global $Difference = 0.1
Global $NumOne = 28
Global $NumTwo = 28.1


_Compare($NumOne, $NumTwo, $Difference)
_Compare($NumTwo, $NumOne, $Difference)
 
Func _Compare($i_NumOne, $i_NumTwo, $i_Difference)
	
	If Round(Abs($i_NumOne - $i_NumTwo),2) <= $i_Difference Then
		Return ConsoleWrite(StringFormat('Result: %g - %g <= %g\n', $i_NumOne, $i_NumTwo, $i_Difference))
	EndIf
	
	Return ConsoleWrite(StringFormat('Result: Error\n', ''))
EndFunc ;==>_Compare
 
Верх