Что нового

Не получается сравнить 2 числа

Neo

Новичок
Сообщения
46
Репутация
0
Здравствуйте. Прошу помощи. При разных значениях переменных $DepoStart и $DepoNOW результатом сравнения является нуль. А должно быть 1 либо -1
Чём тут дело?
Код:
Global $DepoStart=0
Global $DepoNOW

$HTML = _IEPropertyGet($oIE, "innerHTML") ; 
  $DepoNOW = _StringBetween($HTML, '<span id="balance">', '</span>') ; здесь 0.00516316 + - 0.00000001
  ; $DepoNOW изменяется при каждом проходе
  For $i In $DepoNOW  ; Цикл, который будет выводить все значения, что будут найдены между строк
   ConsoleWrite($i & @CRLF); 0.00516316
Next

$sDep= _BigNum_Compare($DepoStart,$DepoNOW) ;сравнить
  ConsoleWrite($sDep) ; всегда нуль - неправильно

If $sDep ==1 Then
   $Num=_BigNum_Mul($sLot, 2) ; здесь работает правильно $sLot*2
$DepoStart=  $DepoNOW ;
  
Else
  $Num=GUICtrlRead($sValue)       ;  
  $DepoStart=  $DepoNOW ;
  ; ConsoleWrite($Num)
EndIf
 
A

Alofa

Гость
Внимательно почитайте, что возвращает _StringBetween(), а затем посмотрите как вы с этим обращаетесь.

Код:
; ...
$DepoNOW = _StringBetween($HTML, '<span id="balance">', '</span>')
For $i In $DepoNOW
	$sDep = _BigNum_Compare($DepoStart, $i)
	ConsoleWrite('+> ' & $DepoStart & ' | ' & $i & ' | ' & $sDep & @LF)
Next
; ...
 
Автор
N

Neo

Новичок
Сообщения
46
Репутация
0
Alofa сказал(а):
Внимательно почитайте, что возвращает _StringBetween(), а затем посмотрите как вы с этим обращаетесь.

Код:
; ...
$DepoNOW = _StringBetween($HTML, '<span id="balance">', '</span>')
For $i In $DepoNOW
	$sDep = _BigNum_Compare($DepoStart, $i)
	ConsoleWrite('+> ' & $DepoStart & ' | ' & $i & ' | ' &$sDep)
Next
; ...

Спасибо, в консоли вместо $DepoStart пустое значение,
Код:
+> 0 | 0.00516379 | -1+>  | 0.00516380 | -1+>  | 0.00516381 | -1+>  | 0.00516382 | -1+>  | 0.00516381 | -1>Exit code: 0    Time: 64.23
то есть не производится запись числа из переменной $DepoNOW вот здесь
Код:
$DepoStart=  $DepoNOW ;

Почему?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Neo

Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 
Автор
N

Neo

Новичок
Сообщения
46
Репутация
0
Alofa сказал(а):
Внимательно почитайте, что возвращает _StringBetween()...

Возвращает 0.00516382 всё правильно на странице это вот так
Код:
<span id="balance">0.00516382</span>
Поясните почему не записывается значение из $DepoNOW в $DepoStart, не понимаю.
 

hedji

Продвинутый
Сообщения
409
Репутация
92
Потому что переменная помимо значения имеет тип: число, строка...
Можно сравнить число с числом, строку со строкой и т.д.
Вы сравниваете число 0 с массивом, который возвращает _StringBetween().
 
A

Alofa

Гость
Neo сказал(а):
... Поясните почему не записывается значение из $DepoNOW в $DepoStart, не понимаю.
Для начала почитайте Обзор языка - переменные.
Не буду давать вам готовый ответ - вы должны дойти до этого сами. Иначе дальше тех строчек, которые в первом посте, вы не сдвинитесь.
 
Верх