Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > в double хранится дробное число. какими функциями |
Автор: Gunslinger 14.11.2008, 10:37 |
Привет! Вопрос в теме. Никаких округлений и прочего не нужно. Только разнести по интам. |
Автор: Alexeis 14.11.2008, 10:45 |
double d; int hi, lo; memcpy(&lo, &d, sizeof(int)); memcpy(&hi, (int*)&d + 1, sizeof(int)); |
Автор: Gunslinger 14.11.2008, 12:06 |
Alexeis, не нашел представление типа в памяти, поэтому код почти не понял. sizeof у double берет сначала дробную часть, затем дабл приводится к инту и ложется в целую часть? +1 - это пропустить знак? |
Автор: Alexeis 14.11.2008, 12:22 |
Упс неправильно понял вопрос. Добавлено через 6 минут и 14 секунд Так просто разнести не получиться. у дабла может быть 16 знаков после запятой. 16 цифр просто не влезет в int, максимум 9. |
Автор: xvr 14.11.2008, 12:40 | ||||
Во первых это не получится сделать точно (в смысле, что собрав эти 2 части назад точно такой же double может не получится) Во вторых, не совсем понятно, что значит 'записать дробную часть в int'? Это число, которое в своем первоначальном виде В ПРИНЦИПЕ не может быть представленно в виде int, т.к. оно всегда меньше единицы В третьих, на уровне машинного представления double выражается как плавающее число с ДВОИЧНЫМ порядком, вам же как я понимаю нужен десятичный, а это не всегда можно преобразовать без потери точности Если же нужно разобрать хоть как то, то можно так:
|
Автор: vinter 14.11.2008, 12:47 | ||
|
Автор: Ln78 14.11.2008, 13:51 | ||
Gunslinger, непонятно, что конкретно нужно. Вот примерно так представляется число double.
|
Автор: Gunslinger 14.11.2008, 14:03 |
разделение нужно было чисто для косметики: в борланде выводить 2 числа в метки, если в одном числе есть 0 - смещать метку с другим числом, чтобы одно под другим выводилось. Тогда проще будет приводить число к строке и парсить ее. Тогда еще проверку на запятую добавить. Тогда ограничений на размер не будет. |
Автор: JAnty 29.4.2010, 17:15 | ||
25,24765
Вот как!!!!!!!!!!!!! КАКОМ К ВЕРХУ !!! |