Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как найти число с максимальной дробной частью. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неккоректность типов.Как правильно сделать? http://www.cyberforum.ru/cpp-beginners/thread47778.html
Приветствую вас уважаемые! Отличный форум,много полезного.) Сразу к делу. Нужен цикл,который выводит послдовательность символов в COM порт (должен выполняться четыре раза). Проблема в несоответствии...
C++ Морзянка... В одном из учебников наткнулся на задачу - написать переводчик англ. букв и цифр в азбуку Морзе. Сделал так: #include <stdio.h> #include <ctype.h> #include <string.h> /* Транслятор азбуки... http://www.cyberforum.ru/cpp-beginners/thread47777.html
C++ Зачем нужные поразрядные операции. Книга Павловская, Щупак
Решаю задачу из учебника Павловская, Щупак. С++. Программироание на языке высокого уровня. Структурное программирование. Практикум. Часть 1. Семинар 2. Задача 1. стр. 44. Задачу см. в привязанном...
проблемы с памятью.... C++
с алгоритмом вроде все нормально но вот происходит такая вещи при определенном действии выдается сообщение которое на скриншоте.... потом высвечивается вот эта строка int Put_Reis(FILE *f_reis, MAP...
C++ Матрица.Поиск точки http://www.cyberforum.ru/cpp-beginners/thread47713.html
У меня есть матрица 25 х 80.Есть функция,которая принимает ссылку на матрицу и текущее расположение(координаты точки). Мне нужно найти данную точку(т.е. отдельный класс создан). Обзор видимости 5...
C++ Перегрузка + для строк есть задача перегрузить = и + таким образом чтобы: строка1=срока2+строка3 с = проблем нет. а вот при перегрузке + выдает ошибку при доступе к закрытым данным //STRING2.H #ifndef STRING2_H... подробнее

Показать сообщение отдельно
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
20.08.2009, 17:04
Цитата Сообщение от rangerx Посмотреть сообщение
А если присвоить какому-нибудь элементу значение побольше, скажем 15654580810.3?
логичный вопрос. сперва нужно придумать как уменьшить в случае необходимости модуль исходного вещественного так, чтобы он не превышал максимального long, и при этом сохранил свою дробную часть. иначе метод будет выдавать ошибку.

обойти можно, например, так (на примере с short, чтоб попроще):
C++
1
2
3
4
5
6
7
8
double dbl = 22.55333333333333333333333333333333333333333e5;
 
double dbl2 = dbl;
while (dbl2 > 0x7fff){
    dbl2 /= 10.0;
}
short shrt = (short) dbl2;
double fract = dbl2 - shrt;
наверняка можно и поизящнее, но нужно думать, а некогда. и все равно нюансы будут иметь место: нужно подумать, как себя вести в случае отрицательных чисел, например. все зависит от конкретного применения. чем аккуратнее нужно это сделать, тем больше нужно думать, и тем дороже результат будет стоить
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru