Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2012, 03:57   #1
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию Разделитель целой и дробной части

application.DecimalSeparator - точка
пишу
a = "1.8"
Msgbox isnumeric(a) & " " & Val(a)*2
вижу
False 3,6

пишу
a = "1,8"
Msgbox isnumeric(a) & " " & Val(a)*2
вижу
True 2

как синхронизировать работу этих двух функций?
число с точкой isnumeric не считает числом вообще, зато Val(a)*2 возвращает правильный результат с одним нюансом - с запятой в качестве разделителя
число с запятой isnumeric признал как число, зато Val(a)*2 взял только первую цифру, а все остальное проигнорировал - и 2 в результате.

то-ли лыжи не катят, то-ли что-то не так...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.11.2012, 10:19   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Попробуй:
Код:
a = "1,8"
MsgBox IsNumeric(a) & " " & CSng(a) * 2
Цитата:
число с точкой isnumeric не считает числом
Точней строку с точкой:-)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 25.11.2012 в 10:21.
kuklp вне форума Ответить с цитированием
Старый 25.11.2012, 10:55   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Игорь,для функции Val однозначно разделитель всегда точка.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.11.2012, 11:08   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Для ВБА тоже. При любых системных разделителях.
Присвоение a = 1,8 тут же вызовет ошибку. А a = 1.8 - правильное присвоение. Запятая в ВБА используется как разделитель при перечислении и не зависит от локали.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача - найти произведение первой цифры целой части и третей цифры дробной части вещественного числа. LAZARUS maks22 Lazarus, Free Pascal, CodeTyphon 2 30.01.2012 19:53
Разделитель дробной и целой частей числа voron29 Win Api 2 17.12.2008 10:56
Разделитель целой и дробной части. gusluk Общие вопросы Delphi 2 12.11.2008 08:45
Разделитель целой и дробной части neugadal Microsoft Office Excel 3 09.10.2008 07:20
Задать разделитель дробной части Taurus Win Api 1 04.09.2007 08:20