Страницы: 1
RSS
CDbl не возвращает значения если строка пуста
 
Она действительно так работает или это глюк? Что должно вернуться если строка пустая

str = ""
CDbl(str)

Что должна вернуть CDbl? Я так понимаю, что 0, но у меня пишет ошибку. а Val(str) возвращает только целое значение
 
CDbl преобразует число, представленное как текст в число. А "" это строка нулевой длины и числом даже рядом не является. Поэтому необходимо сначала делать проверку:
Код
If str <> "" Then CDbl(str)

либо
Код
If IsNumeric(str) Then CDbl(str)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо. The_Prist, скажите, а есть такая функция которая бы возвращала и не целое число и 0 если строка пуста?
 
Переформулируйте, вопрос не понятен...
 
LVL,  Вот функция CDbl(str) возвращает число если str - текст содержащий число, но если строка пуста он возвращает ошибку. Мне нужно чтобы она возвращала 0. Val(str) возвращает ноль, если строка пуста, но число она возвращает только целое.
 
Делайте проверку строки перед использованием функции Cdbl() и ваша проблема решится...
 
LVL, Это понятно, я просто спрашивала, есть ли такая функция которая вернет  и не целое число и ноль если строка пуста. Ладно, спасибо, проблема решена.
 
Цитата
sunlight-vrn пишет:
есть ли такая функция
Цитата
The_Prist пишет:
If IsNumeric(str) Then CDbl(str)
Что непонятно?
Я сам - дурнее всякого примера! ...
 
cdbl(val(str))
Живи и дай жить..
 
KuklP, Слэн, Спасибо, все понятно. Тема закрыта.
 
Val опирается на локализованный разделитель целой и дробной части. Как правило это точка.
Можно попробовать так:
Код
Val(Replace(str, ",", ".")

так же лучше пробелы так же удалить(на всякий случай)
Код
Val(Replace(Replace(str, " ", ""), ",", ".")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх