Проблема с выводм на дисплей значения переменной DWord
|
|
доцент2 |
Дата: Пт, 24.02.2017, 21:02 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
292
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Dim T As SWord 'температура в цельсиях x 10 Dim Prm As Dword 'давление в мм ртутного столба mm.rt.st
‘вывод на 1602. Работает нормально! Print At 2,11,SDec2 T/10,".",Dec1 T, 223, "C" Print At 2,1, Dec Prm/100,".",Dec2 Prm,"mm"'" mm.rt.st"
‘вывод температуры на nokia-1616. Работает нормально. StrN Text_stroka=Str$(SDec2 T/10):GoSub Nokia_1616_Text StrN Text_stroka="." :GoSub Nokia_1616_Text StrN Text_stroka=Str$(Dec1 T) :GoSub Nokia_1616_Text StrN Text_stroka="`C" :GoSub Nokia_1616_Text
‘вывод давления на nokia-1616. Проблема! ‘проблемка втом, что переменная Prm (DWord) не хочет отображаться на дисплее StrN Text_stroka=Str$(Dec Prm/100):GoSub Nokia_1616_Text StrN Text_stroka="." :GoSub Nokia_1616_Text StrN Text_stroka=Str$(Dec2 Prm) :GoSub Nokia_1616_Text StrN Text_stroka="mm" :GoSub Nokia_1616_Text Если добавляю переменную, нормально выводит только целую часть (fff), подскажите как вывести значения после запятой. Dim fff As Word fff=Prm/100 StrN Text_stroka=Str$(Dec fff) :GoSub Nokia_1616_Text StrN Text_stroka="." :GoSub Nokia_1616_Text StrN Text_stroka=Str$(Dec2 Prm) :GoSub Nokia_1616_Text StrN Text_stroka="mm" :GoSub Nokia_1616_TextДобавлено (24.02.2017, 21:02) --------------------------------------------- Проблемка решена. Dim ggg As Word ggg=Prm-30000 StrN Text_stroka=Str$(Dec2 Prm) :GoSub Nokia_1616_Text теперь все нормально.
Сообщение отредактировал
доцент2 - Пт, 24.02.2017, 19:47
|
|
|
|
ADMIN |
Дата: Сб, 25.02.2017, 03:29 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
А в чем, собственно, решение?
Dim ggg As Word ggg=Prm-30000 StrN Text_stroka=Str$(Dec2 Prm) :GoSub Nokia_1616_Text теперь все нормально.
|
|
|
|
доцент2 |
Дата: Сб, 25.02.2017, 14:20 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
292
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Решение в том, что у меня библиотека Nokia-1616 почему-то не захотела прочитать переменную типа DWord, хотя SWord понимает (пока не разбирался в чем там дело.) Значение переменной DWord давления, например 75622 (т.е. 756,22мм) более 65535. Поэтому пришлось объявить переменную и поделить на 100 значение Prm - получается целая часть типа Word (с ней библиотека работает отлично). Dim fff As Word fff=Prm/100 Для вывода значения после запятой пришлось объявить еще одну переменную и отнять от нее (как пример 30000), чтобы за значение Word не вылазила. Dim ggg As Word ggg=Prm-30000 Получается криво, надо думать.
Сообщение отредактировал
доцент2 - Сб, 25.02.2017, 14:22
|
|
|
|
xvovanx |
Дата: Сб, 25.02.2017, 23:12 | Сообщение # 4 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
В протоне есть функция отделения целой части от числа, т.е. 756 без дробной части уже получили. А потом от 756,22 отнимаем целую часть 756 и умножаем остаток на 100 и как новую переменную. На дисплей выводим целую часть, потом знак раздела (запятую) и вторую переменную.
|
|
|
|
доцент2 |
Дата: Вс, 26.02.2017, 13:12 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
292
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Цитата xvovanx ( ) 756 без дробной части уже получили. А потом от 756,22 отнимаем целую часть 756 и умножаем остаток на 100 и как новую переменную. мудрено получается. Мне кажется я сделал проще. переменная давления Рrm = 75622 (тип DWord) В данном случае целая часть это 756, т.е. Dim fff As Word fff=Prm/100 - целая часть 756 на дисплей StrN Text_stroka=Str$ (Dec fff): GoSub Nokia_1616_Text далее выделяем дробную часть Dim ggg As Word ggg=Prm-30000 (можно отнять любое число, главное результат должен быть не более 65535 для переменной типа Word), далее на дисплей StrN Text_stroka=Str$ (Dec2 ggg): GoSub Nokia_1616_Text
Цитата xvovanx ( ) В протоне есть функция отделения целой части от числа Наверное затупил. Перелопатил описание протона, но не нашел такую функцию.
|
|
|
|
xvovanx |
Дата: Ср, 01.03.2017, 23:24 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата доцент2 ( ) Перелопатил описание протона, но не нашел такую функцию
Если честно - лень искать . Если не ошибаюсь, оператор был как две косые черты, а название функции вроде как Modulis
|
|
|
|
доцент2 |
Дата: Ср, 01.03.2017, 23:29 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
292
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Все равно надо объявлять дополнительные переменные.
|
|
|
|