Val Надо преобразовать из Dooble в Integer

Программирование на Visual Basic for Applications
SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Val Надо преобразовать из Dooble в Integer

Сообщение SLIM » 03.05.2008 (Сб) 13:32

Сталкнулся знач с следующим.
При приобразовании строки в циферку используется val. Но ондает значение Dooble. Число 1.56 округляет до 2, а чило 0,25 округляет до 0. Мне нужно передать реальный размер (Не целый).
Пробовал Cint и другие ф-ии преобразования. Но они быдут выполняться уже после преобразования, т.е.:
Код: Выделить всё
f=CInt(val("0,156"))

толку все равно нет(да и в самом деле глупо)
Ну не знаю какие еще есть ф-ии приобразования строки в чило. Либо как изменить тип результата Val на другой, например INTEGER.
Кто знает подскажите плиз....
Пишите жизнь на чистовик.....переписать не удастся.....

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 03.05.2008 (Сб) 13:59

Для начала необходимо осознать отличие
Код: Выделить всё
MsgBox Val("0.25")
MsgBox Val("0,25")
Salus populi suprema lex

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 03.05.2008 (Сб) 14:04

Блин. Забыл про это.
Строка считывается их текстового файла. А там именно 0,25 а не 0.25
Я пологаю намекаешь поменять "," на "." и все бут ок?
Ладно выход есть. А вто если сложным путем,не меняя?
Пишите жизнь на чистовик.....переписать не удастся.....

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 03.05.2008 (Сб) 15:04

А если там ",", то зачем Val? Функция Val в качестве разделителя использует точку, независимо от региональных стандартов. Функции CSng и CDbl используют в качестве разделителя разделитель, указаный в региональных стандартах.
Да и ещё перечитай про тип данных Integer, а то судя по первому посту ты его путаешь с Double или Single.
Salus populi suprema lex

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 03.05.2008 (Сб) 15:52

Просто мне нужно работать с данными как с чилом а не строкой. Вот и Val использую.
Пишите жизнь на чистовик.....переписать не удастся.....

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 03.05.2008 (Сб) 16:22

dr.MIG писал(а):Функция Val в качестве разделителя использует точку, независимо от региональных стандартов.

А ты пишешь, что у тебя запятая. Либо приводи строку с числом к виду ".", либо используй CDbl.
Salus populi suprema lex

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 03.05.2008 (Сб) 19:11

В соты и сотый раз одно и то же. Прежде чем спросить подумай.
Вроде все получилось. Извняюсь за беспокойство.
:roll:
Пишите жизнь на чистовик.....переписать не удастся.....


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 103

    TopList