Что нового

Проверка на натуральное число

trizorka

Новичок
Сообщения
53
Репутация
4
Доброго времени суток.
Написал скрипт, который проверяет натурально число или нет. Но тут проблема: если я ввожу $qw = "6h", ответ будет - натуральное число, не смотря на то что там содержится буква. Каким образом сделать проверку на "натуральность" или в строке $qw содержится хоть одна буква то вывести ошибку?

Код:
#include <Array.au3>
$qw = "6h"
For $i = 1 to 10^6 Step +1
If $i = $qw Then 
ConsoleWrite("Число натуральное"&@CRLF)
EndIf
Next
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
:
Что показывает скрипт если $qw = "1000000000000000000000000" ?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Функции обязательные для ознакомления:
Код:
Int()
IsInt()
Number()
IsNumber()
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Какая-то странная проверка натурального числа... Может так проще?

Код:
If (StringIsDigit($qw)) And (StringReplace($qw, "0", "")) Then
	ConsoleWrite("Число натуральное" & @CR)
EndIf
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
В первом коде строчку измени
Код:
If $i == $qw Then
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
winstan [?]
В первом коде строчку измени
И что?
== сравнивает две переменные учитывая регистр букв, при чём здесь число?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
CreatoR
Видимо AutoIt3 при сравнении переводит число в строку и тогда уже требуется точное совпадение.
 
Верх