Аналитика
http://geosystema.net/forum/

Помилка порівняння чисел
http://geosystema.net/forum/viewtopic.php?f=5&t=19737
Страница 1 из 1

Автор:  Rutar [ 24 авг 2018 10:51 ]
Заголовок сообщения:  Помилка порівняння чисел

Недавно виявив, що програма неправильно порівнює від'ємні числа. Написав такий скрипт для перевірки:
Цитата:
$a=-450
$b=-400
;
@if $a<=$b then @goto %a else @goto %b
;
%a
@Dialog.Message A = $a, B = $b, A <= B
@goto %c
;
%b
@Dialog.Message A = $a, B = $b, A > B
@goto %c
;
%c

При виконанні у мене виводить: A = -450, B = -400, A > B. Якщо скрипт переписати наступним чином, то порівняння виконується вірно.
Цитата:
$a=-450
$b=-400
;
$delta=$a-$b
@if $delta<=0 then @goto %a else @goto %b
;
%a
@Dialog.Message A = $a, B = $b, A <= B
@goto %c
;
%b
@Dialog.Message A = $a, B = $b, A > B
@goto %c
;
%c

Результат: A = -450, B = -400, A <= B

Автор:  Руслан Пархуць [ 28 авг 2018 21:09 ]
Заголовок сообщения:  Re: Помилка порівняння чисел

Rutar писал(а):
Недавно виявив, що програма неправильно порівнює від'ємні числа. Написав такий скрипт для перевірки:
Цитата:
$a=-450
$b=-400
@if $a<=$b then @goto %a else @goto %b

В деяких випадках (а це напевно i вiн є) при формуваннi умови змiннi потрiбно заключати в лапки (@if "$a"<="$b" then @goto %a else @goto %b). Колись я стикався з подiбним.

Страница 1 из 1 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/