Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу помогите преобразовать часть кода
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
dutik dutik вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.09.2011
По умолчанию помогите преобразовать часть кода - 08.09.2011, 11:43

float hAngle = ui.hAngle->text().toFloat()*180.0/PI;
int hMin = (int)((hAngle - (int)hAngle)*60.0);
int hSec = (int)((hAngle - (int)hAngle)*3600.0 - 60*hMin);

float vAngle = ui.vAngle->text().toFloat()*180.0/PI;
int vMin = (int)((vAngle - (int)vAngle)*60.0);
int vSec = (int)((vAngle - (int)vAngle)*3600.0 - 60*vMin);

вот он, этот код..

а вот то, что посоветовали сделать...

для повышения точности
double hAngle
double vAngle


Преобразование
double dval;
int ival = (int)dval требует более обдуманного подхода


сможете сделать преобразование?
заранее спс
Ответить с цитированием
  (#2 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 08.09.2011, 14:44

1. double, безусловно, улучшит точность. На некоторых плаформах есть еще long double.
2. А вот с преобразованием double в int - действительно нужен обдуманный подход. Тот код, который приведен в сообщении, просто отбрасывает дробную часть числа. Т.е. число 12.998 просто преобразует к 12 - это ли ты ожидаешь? Может, числа нужно округлять по "привычным" математическим методам - 12.998 -> 13, 12.152 -> 12 ? Тогда правильнее, наверное, int ival = (int)(dval + 0.5);


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#3 (permalink)) Старый
dutik dutik вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.09.2011
По умолчанию 08.09.2011, 15:51

ну вообще как,в программе в окошко выходи углы минуты и секунды... то есть сейчас она мне пишет к примеру 165 45' 34.24545" ,а при измерении в ручную выходит 165 45' 33.6789"( к примеру)... после запятой мне нужно только два знака, да в принципе класть на них...
но всегда разная выходит разница в измерениях, и никакой закономерности нет(((

"Т.е. число 12.998 просто преобразует к 12 - это ли ты ожидаешь?" - ага
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться в одном коде ввод фразы с клавиатуры и преобразовать его gantulga Assembler 1 19.12.2011 00:33
Много кода или пожалуйста, помогите найти ошибку в программе went Prolog 8 21.04.2011 14:00
Егэ часть C4 задача. rotmaister С/С++ 5 21.05.2010 22:49
как часть чертежа из компаса преобразовать в картинку Механ Графика & дизайн 8 11.05.2010 07:09
АМД творит чудеса, часть 2 Maga О производителях 1 05.03.2009 15:35
AMD продаст часть ATI? GESHA О производителях 0 01.08.2008 13:31
Что такое клиентская часть MINDKILLER Delphi 8 04.02.2008 17:47
помогите написать кодер/декодер для кода Рида соломона (34,30). borisich2141 Pascal 2 17.02.2007 17:44
Помогите преобразовать данные. NJohn Visual Basic 5 29.06.2006 18:08
Помогите с выбором программы для написания кода bugs Вопросы начинающих программистов 1 08.02.2004 17:35
Помогите срочно преобразовать строку string в inte Anonymous Вопросы начинающих программистов 4 10.12.2003 12:52



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов