Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / isnumeric и группы разрядов / 9 сообщений из 9, страница 1 из 1
09.02.2004, 14:23
    #32402786
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
Уважаемый All!
Подскажите плз
что делать с функцией isnumeric????????!!!!!!

региональные настройки - US
даем на вход правильное число:
2.54
- хавает и говорит TRUE

даем неправильное:
2,54
- опять хавает и говорит TRUE

веряотная причина в запятой - разделителе групп разрядов

(аналогично реагировать на пробел в регионе RU???)

что делать?

принудительно проверять на ошибочную запятую??????
...
Рейтинг: 0 / 0
09.02.2004, 14:30
    #32402809
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
Ни при чем тут разделитель групп
Ф1Returns a Boolean value indicating whether an expression can be evaluated as a number
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
? isnumeric( "12 . 34 ")
True
? isnumeric( "12 , 34 ")
True
? isnumeric( "12ю34" )
False
? cdbl( "12 , 34 ")
  12 . 34  
? cdbl( "12 . 34 ")
  12 . 34  
? cdbl( "12ю34" )
 упс не шмогла

Так что все правильно. Если Can - значит True, если не Can - значит False
...
Рейтинг: 0 / 0
09.02.2004, 14:37
    #32402831
русскую
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
ставим "русскую" настройки ("," и " ") и имеем

?isnumeric("2.33")
Ложь


А ваабще-то, на кой это потребовалось? (или кака бычна задача проще решается?)
...
Рейтинг: 0 / 0
09.02.2004, 14:40
    #32402837
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
ставим "русскую" настройки ("," и " ") и имеем

?isnumeric("2.33")
Ложь
Что тоже абсолютно правильно.
...
Рейтинг: 0 / 0
09.02.2004, 15:13
    #32402914
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
а у меня так:

? cdbl("12,34")
1234

здесь так быть и должно...


задача - запретить ввод нечисловых параметров

обходится созданием поля ввода на форме, знаю,
но нужно в функции напрямую
...
Рейтинг: 0 / 0
09.02.2004, 15:16
    #32402922
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
Есть всего два варианта: либо полагаться на функцию IsNumeric, либо писать свою...

function XXX(s as string)as boolean
dim i as integer
for i=1 to len(s)
select case mid(s,i,1)
case ...
XXX=false
exit function

и т.д.
...
Рейтинг: 0 / 0
09.02.2004, 15:22
    #32402934
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
или Replase(s,',','.')

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
09.02.2004, 15:31
    #32402957
E. V.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
?! ;( ?!!!!!
...
Рейтинг: 0 / 0
09.02.2004, 15:38
    #32402976
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
isnumeric и группы разрядов
replace не спасет отцев русской демократии:
123,456,789
превратиться в
123.456.789
что числом никак не будет

явно нужен мудрый скан строки с "добавлением что надо и пропуском/заменой чего не надо"..
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / isnumeric и группы разрядов / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]