Конференция на VBStreets - Преглед на тема - Точка или запетая
Целият вкус на програмирането!
- Списък на форума‹ Visual Basic‹ Visual Basic 1-6
- Промяна на размера на шрифта
- ЧЗВ
- Вход
точка или запетая
точка или запетая
Работа с калкулатор.
Защо програмата изисква десетична запетая "." за математически изчисления? и в резултат на това извежда запетая "," по-нататъшни математически операции с които са невъзможни?
Dim z As Double _______________________________________ 'натиснете клавиша "+".
____________________________________ 'натиснете клавиша "="
z = Val(txtText1.Tag) + Val(txtText1.Text) txtText1.Text = z
Точно така, MS VB има интерпретация на обичайния американски формат за дати, часове и числа:
Дата: ММ/ДД/ГГ Час: ЧЧ:ММ:СС Разделител на цифри: точка
Мисля, че функциите CInt, CLng, CSng или CDbl ще помогнат тук (в зависимост от типа израз - Integer, Long, Single или Double), вместо обичайните Val. Те вземат предвид регионалните настройки при конвертиране. Вижте помощта на VB за подробности.
Вижте тук: Код: Изберете всички 'резултат 155 MsgBox Val("155.9") 'резултат 156 MsgBox CInt("155.9")
Проблемът, макар и свързан с националните условия, е малко по-дълбок. Оказва се, че КАКВО извежда VB и КАКВО означава не винаги е едно и също. VB за вътрешни изчисления, да, използва десетичната запетая ".", и за наше удобство показва десетичната запетая "," с която по-нататъшни действия са невъзможни. Проблемът беше да се стигне до дъното на това, което VB казва и мисли по различни начини. За да разрешите този проблем, е необходимо да изхвърлите всички резултати от изчисленията в променливи успоредно с това, което се показва в текстовото поле и вдопълнително използвайте данните от тези променливи, а не от txt полета.