TextBox и десятичный знак

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

TextBox и десятичный знак

Сообщение Yurich » 17.01.2005 (Пн) 2:31

Вопрос думаю несложный

Dim Value as Single
Text1.Text=5.5
Value=Val(Text1.Text)
В зависимости от настроек стандартов винды (точка или запятая в разделителе) Value принимает значения 5.5 или 5
Как заставить при любых условиях возвращать 5.5?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.01.2005 (Пн) 2:57

Кто-то тут говорит неправду :)

Val игнорирует национальные настройки и любит точку. CDbl наоборот.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 17.01.2005 (Пн) 3:32

GSerg писал(а):Val игнорирует национальные настройки и любит точку...

В том и беда ... Надо чтобы TextBox всегда рисовал точку!
Может есть API, которые позволят изменять/восстанавливать эти настройки программно?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.01.2005 (Пн) 4:14

Текстбокс рисует только то, что ему говорят :) Скажут рисовать точку - нарисует, независимо от национальных настроек.
Юзеров, что ли, надо заставить точку вводить?
Откуда вообще берётся точка?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 17.01.2005 (Пн) 8:09

Если делать так:
Value=5.5
Text1.Text = Trim$(Str$(Value))
то в текстбоксе будет 5.5

Когда нужно что-то посчитать, то переводим в число
Value=Val(Text1.Text)
а для отображения, обратно в строку
Tеxt1.Text=Trim$(Str$(Value))
Нет ничего невозможного для человека с интеллектом.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 17.01.2005 (Пн) 10:45

А функция Replace для чего существует?

Replace(Text1.Text,",",".")

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.01.2005 (Пн) 11:00

Ненадежно это.
А если у пользователя разделитель дробной и целой части не точка и не запятая (а например, апостоф)?
А если у пользователя разделитель дробной и целой части и разделитель групп разрядов совпадают?
Lasciate ogni speranza, voi ch'entrate.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 17.01.2005 (Пн) 11:30

А если разделитель - восклицательный знак?
А если разделитель - знак минуса?
А если небо упадёт на землю и реки потекут к своим истокам? :)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.01.2005 (Пн) 11:33

это пожизненный гимор.

Я делал ломом:

SetLocalInfo при старте.

Как я понял, так многие делают, ворд при этом всегда орёт НЕПРАВИЛЬНЫЙ РАЗДЕЛИТЕЛЬ ДРОБНОЙ ЧАСТИ
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.01.2005 (Пн) 11:34

Вот именно. Поэтому надо не изобретать велосипед, а использовать то, что дано нам Microsoft'ом для этих целей.
Lasciate ogni speranza, voi ch'entrate.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 18.01.2005 (Вт) 1:35

Kostyan писал(а):Если делать так:
Value=5.5
Text1.Text = Trim$(Str$(Value))
то в текстбоксе будет 5.5

Это подходит. Спасибо!

И еще. Как можно позиционировать курсор внутри TextBox-а?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.01.2005 (Вт) 5:30

selstart
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 0

    TopList  
cron