roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 май 2025, 21:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: как поделить 1 на 50000
СообщениеДобавлено: 04 апр 2012, 21:44 
Не в сети
Аватара пользователя

Зарегистрирован: 08 дек 2009, 19:21
Сообщения: 404
Откуда: Й-Ола
на экране нужно получить что то типа 5,56 или 0,12 - три разряда и запятую

я пишу так в си++

a=1/b*1000 , где b - insined int (до 65535)
a - определяю как float

а vblab делить не хочет

_________________
Ваш IP-адрес 85.140.5.459 был внесён в черный список и заблокирован. Для получения дополнительной информации перейдите по ссылке http://www.spamhaus.org/query/bl?ip=85.140.5.459.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как поделить 1 на 50000
СообщениеДобавлено: 04 апр 2012, 22:00 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Опять люди синус с косинусом путают
не inSINed, а inCOSined

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как поделить 1 на 50000
СообщениеДобавлено: 05 апр 2012, 08:52 
Не в сети
Аватара пользователя

Зарегистрирован: 25 июл 2007, 10:38
Сообщения: 354
Откуда: Москва (Троицк, МО)
ФИО: Антон Миронов
Ищите порядок приведения типов, видимо сначала выполняется деление с целым результатом, а потом только приводится к плавучке.
И потом, что нельзя сделать так: a=1000/b, а запятую поставить ручками? И не связываться с плавучкой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как поделить 1 на 50000
СообщениеДобавлено: 05 апр 2012, 10:32 
Не в сети
Аватара пользователя

Зарегистрирован: 23 апр 2009, 17:03
Сообщения: 2639
Откуда: Москва, Самара
прог. языки: C#
к561ЛА7 писал(а):
на экране нужно получить что то типа 5,56 или 0,12 - три разряда и запятую

я пишу так в си++

a=1/b*1000 , где b - insined int (до 65535)
a - определяю как float

а vblab делить не хочет


Я слышал, что нельзя на ноль делить.
А что vblab говорит, почему не хочет?
Попробуй заменить на
a = ( b == 0 ? 99999999 : (1000.0 / ((float) b)));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как поделить 1 на 50000
СообщениеДобавлено: 05 апр 2012, 10:41 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Разумеется сначала выполняется целое деление 1/b (получается 1, если b=1, 0 если b>1 и че-то плохое если b=0), потом этот целый результат множится на 1000 и только потом приводится к float.

Правильно делать так: a=1000.0/b

Это если известно, что b<>0. если 0 возможен - тогда так

a=(b==0)?9999.0:1000.0/b


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO