Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам