Что нового

Определение размера числа

lelik_keo

Новичок
Сообщения
32
Репутация
0
Здравствуйте!
столкнулся с проблемой: программа сравнивая например числа 2 и 17 определяет, что число 2 больше 17, а если сравнить 02 и 17, то число 17 больше!
подскажите пожалуйста как определить, число у меня двух-, трех-, четырехзначное? и как вставить перед числом нули автоматически чтобы получилось к примеру 00002 и 00017?

Заранее всем спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
lelik_keo
число 2 больше 17
Пример нужен. У меня всё нормально
Код:
ConsoleWrite(2 > 17)
ConsoleWrite(@CRLF)
ConsoleWrite(02 > 17)
ConsoleWrite(@CRLF)
ConsoleWrite("02" > "17")
ConsoleWrite(@CRLF)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lelik_keo [?]
программа сравнивая например числа 2 и 17 определяет, что число 2 больше 17
Пример?

как вставить перед числом нули
Код:
Local $iFirst = 2, $iSecond = 17, $sFirst = StringFormat('%05d', $iFirst), $sSecond = StringFormat('%05d', $iSecond)
MsgBox(64, 'Info', '$sFirst = ' & $sFirst & @LF & '$sSecond = ' & $sSecond)


На будущее - задавайте в теме только один вопрос.
 
Автор
L

lelik_keo

Новичок
Сообщения
32
Репутация
0
madmasles сказал(а):
lelik_keo [?]
программа сравнивая например числа 2 и 17 определяет, что число 2 больше 17
Пример?



Код:
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
 #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiConstants.au3>
#include <GUIComboBox.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <String.au3>
#Include <Array.au3>
#include <pdf_au3_haru.au3>
#include <Date.au3>



 Local $x1
 Local $x2
 Local $dalee3

Global $tochka_left_x[1] ;Левый угол здания - Х
Global $tochka_right_x[1] ;Правый угол здания - Х

$tochka_left_x[0] = ''
$tochka_right_x[0] = ''
$cv = 1



$Debug_CB = False ; Проверяет ClassName передаваемый в ComboBox/ComboBoxEx функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает
GUICreate("Характеристика " &$cv& "-го здания", 700, 296, -1, -1, $WS_OVERLAPPEDWINDOW)


$x1 = GuiCtrlCreateInput("", 20, 50, 50, 20) ; создали поле для ввода
GUICtrlCreateLabel('Укажите координату "Х" левого угла ' &$cv& '-го здания', 80, 50)

$x2 = GuiCtrlCreateInput("", 350, 50, 50, 20) ; создали поле для ввода
GUICtrlCreateLabel('Укажите координату "Х" правого угла ' &$cv& '-го здания',410, 50)

 $dalee3=GuictrlcreateButton("Далее", 20, 270,60, 20)

GuiSetState() ; показали окно ввода
	 While 38
	Switch GUIGetMsg()
 Case $dalee3




	 GuiSetState(@SW_HIDE)
_ArrayAdd($tochka_left_x, GUICtrlRead($x1))
_ArrayAdd($tochka_right_x, GUICtrlRead($x2))
_1()
	Case $GUI_EVENT_CLOSE
				Exit
EndSwitch
WEnd



;



Func _1()

If $tochka_left_x[$cv]>0 And $tochka_right_x[$cv]>0 And $tochka_left_x[$cv]>$tochka_right_x[$cv] Then
      MsgBox(4160, "Информация", "left_x > right_x" )
   Else
	   MsgBox(4160, "Информация", "left_x < right_x" )
EndIf


   EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
lelik_keo
Код:
...
$x1 = GUICtrlCreateInput("", 20, 50, 50, 20, 0x2000) ; создали поле для ввода со стилем $ES_NUMBER
GUICtrlCreateLabel('Укажите координату "Х" левого угла ' & $cv & '-го здания', 80, 50)

$x2 = GUICtrlCreateInput("", 350, 50, 50, 20, 0x2000) ; создали поле для ввода со стилем $ES_NUMBER
GUICtrlCreateLabel('Укажите координату "Х" правого угла ' & $cv & '-го здания', 410, 50)
...

Func _1()
  If $tochka_left_x[$cv] = 0 Or $tochka_right_x[$cv] = 0 Then
    MsgBox(4160, "Ошибка", "Нулевая координата")
    Return
  EndIf
  Select
    Case $tochka_left_x[$cv] > $tochka_right_x[$cv]
      MsgBox(4160, "Информация", "left_x > right_x")
    Case $tochka_left_x[$cv] < $tochka_right_x[$cv]
      MsgBox(4160, "Информация", "left_x < right_x")
    Case $tochka_left_x[$cv] = $tochka_right_x[$cv]
      MsgBox(4160, "Информация", "left_x = right_x")
  EndSelect
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
lelik_keo
Вы просто запутались в своём коде.
Нужно сразу стараться писать грамотно и чисто.



Добавлено:
Сообщение автоматически объединено:

Код:
_ArrayAdd($tochka_left_x, Number(GUICtrlRead($x1)))
_ArrayAdd($tochka_right_x, Number(GUICtrlRead($x2)))
 
Автор
L

lelik_keo

Новичок
Сообщения
32
Репутация
0
Garrett сказал(а):
OffTopic:
lelik_keo
Вы просто запутались в своём коде.
Нужно сразу стараться писать грамотно и чисто.



Добавлено:
Сообщение автоматически объединено:

Код:
_ArrayAdd($tochka_left_x, Number(GUICtrlRead($x1)))
_ArrayAdd($tochka_right_x, Number(GUICtrlRead($x2)))





СПАСИБО БОЛЬШОЕ!!!! :laugh: :IL_AutoIt_1:


Добавлено:
Сообщение автоматически объединено:

Garrett сказал(а):
OffTopic:
lelik_keo
Вы просто запутались в своём коде.
Нужно сразу стараться писать грамотно и чисто.



Добавлено:
Сообщение автоматически объединено:

Код:
_ArrayAdd($tochka_left_x, Number(GUICtrlRead($x1)))
_ArrayAdd($tochka_right_x, Number(GUICtrlRead($x2)))





А почему с данным вариантом отрицательные числа не сравнивает? :stars:
 
Автор
L

lelik_keo

Новичок
Сообщения
32
Репутация
0
Garrett сказал(а):
lelik_keo [?]
А почему с данным вариантом отрицательные числа не сравнивает?
Код:
Int, String, Binary, Ceiling, Floor, HWnd, Ptr, Round

к сожалению, я не понял Вас((( подскажите пожалуйста, можно ли сделать такую же проверку и с отрицательными числами? а то у меня при любых вариантах первое число меньше второго((((
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
lelik_keo
при любых вариантах
Так у вас же в самой проверке определено, что оба числа должны быть больше нуля
Код:
If $tochka_left_x[$cv]>0 And $tochka_right_x[$cv]>0 And $tochka_left_x[$cv]>$tochka_right_x[$cv] Then
 
Автор
L

lelik_keo

Новичок
Сообщения
32
Репутация
0
InnI сказал(а):
lelik_keo
при любых вариантах
Так у вас же в самой проверке определено, что оба числа должны быть больше нуля
Код:
If $tochka_left_x[$cv]>0 And $tochka_right_x[$cv]>0 And $tochka_left_x[$cv]>$tochka_right_x[$cv] Then

Точно!туплю! спасибо)))
 
Верх