Страница: 1 |
Страница: 1 |
Вопрос: Val(Text.text1)+Val(Text.text2)
Добавлено: 23.09.05 00:34
Автор вопроса: Sania | ICQ: 347442784
Ребята, сейчас последние волосы с головы повыдергиваю.
дано:
В Text.text1 пишем 4,5
в Text.text2 пишем 5
Значит кнопка складывает поля в Text.text3.
Если так
Text.text3=Val(Text.text1)+ 5 то в Text.text3 бутет 9,5
Если так
Val(Text.text1)+ Val(Text.text2)то в Text.text3 бутет будет 9
Да неспорю если написать в Text.text1 4.5 то в Text.text3 бутет будет 9,5. Но куда ээттаа! Val дела все после запятой!??! может есть какой выход. Мне необходимо работать с запятой никаких точек.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Sania
ICQ: 347442784
Вопросов: 18
Ответов: 7
Профиль | | #1
Добавлено: 23.09.05 00:39
Ой пардон, уже киплю.Не Val(Text.text1) а Val(Text1.text)
Номер ответа: 2
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #2
Добавлено: 23.09.05 00:47
всё верно.
Val() в качестве десятичного знака понимает исключительно точку и стринг конвертирует в число, останавливаясь на первом "неизвестном" символе.
а вот CSng() и CDbl() десятичным знаком считают тот, что у тебя указан в региональных настройках, т.е. "," в твоём случае.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 23.09.05 01:19
ну ещё заменять запятую на точку
Text1 = Replace (Text1, ",", "."
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 23.09.05 12:51
Тут лучше пользоваться своей функцией. Я обычно юзаю такую схему
Private Function StrToDbl(StringNumber As String) As Double
On Error Resume Next
StrToDbl = CDbl(StringNumber)
If Err Then StrToDbl = Val(StringNumber)
End Function