Конференция на 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 полета.