разделитель десятичной части и TextBox

Программирование на Visual Basic for Applications
demid77
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 14.09.2005 (Ср) 13:18

разделитель десятичной части и TextBox

Сообщение demid77 » 10.11.2005 (Чт) 11:16

просмотрел существующие темы, но ответа не нашёл...

у меня win2000Rus, Office2003Eng. прога будет использоваться как на Windows(Rus), так и на Windows(Eng)

1. выполняю в Excel "msgbox format$(0, ".")", получаю ",". т.е. десятичный разделитель в Excel запятая ",". верно? но в самом коде программы использую константы с разделителем в виде точки ".", т.к. на запятую в константах VBE ругается. вопрос - это почему так? можно ли изменить вид разделителя в VBE?

2. вообще-то надо, чтобы в ходе выполнения программы в textbox'е отображались числовые значения. а получается, что я ввожу число в форме с разделителем в виде ",", а после вычислений получаю числа в этой же форме, но с разделителем в виде ".". как привести все десятичные разделители к одному виду?
надеюсь объяснил понятно... :)

3. на этом форуме уже много вопросов по числам (разделителям) и TextBox... а есть где-нибудь статья на эту тему?

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

Сообщение GSerg » 10.11.2005 (Чт) 12:10

1. Ты понимаешь разницу между числом и строковым представлением числа?
2. Используй clng, csng, cdbl и cstr.
3. Смысл писать статью, чтобы сказать в ней два слова?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

demid77
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 14.09.2005 (Ср) 13:18

Сообщение demid77 » 10.11.2005 (Чт) 13:18

to GSerg
извини за глупые вопросы, я только недавно начал пытаться программировать...
объясни, плиз, почему так
Код: Выделить всё
msgbox Round("1,5" * "1,5", 2) ---> "2,25"
msgbox FormatNumber("1,5" * "1,5", 2) ---> "2,25"

а вот когда это делаю для textbox в форме, то получаю
Код: Выделить всё
UserForm1.TextBox1.Value = Round("1,5" * "1,5", 2) ---> "2.25"
UserForm1.TextBox1.Value = FormatNumber("1,5" * "1,5", 2) ---> "2,25"

т.е. почему точка появляется при округлении Round для textbox?

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

Сообщение GSerg » 10.11.2005 (Чт) 13:23

О господи...


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

demid77
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 14.09.2005 (Ср) 13:18

Сообщение demid77 » 10.11.2005 (Чт) 13:33

GSerg писал(а):О господи...


demid77, ты понимаешь разницу между 2 и "2"?

ну... вроде понимаю, тогда объясни, плиз, почему следующая прога даёт разные результаты при работе с Round и FormatNumber?
Код: Выделить всё
Sub test()
Dim w As Double
Dim n As Double
w = 1.5
n = 1.5
' UserForm1.TextBox1.Value = Round(n * n, 2)
UserForm1.TextBox1.Value = FormatNumber(n * n, 2)

  UserForm1.Show
End Sub

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

Сообщение GSerg » 10.11.2005 (Чт) 13:41

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


Вернуться в VBA

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

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

    TopList