The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Какой тип поддерживает большие числа в Си?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Какой тип поддерживает большие числа в Си?"  
Сообщение от mxl email(ok) on 19-Мрт-06, 09:51 
Какой тип поддерживает большие числа (11 и более знаков до запятой)в Си? Сейчас числа целые (какой для целых),но могут быть и дробные (какой для дробных)? Тип double и real не подходят.Есть ли что-нить типа double precision как в Postgres?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Какой тип поддерживает большие числа в Си?"  
Сообщение от mxl email(ok) on 19-Мрт-06, 10:18 
>Какой тип поддерживает большие числа (11 и более знаков до запятой)в Си?
>Сейчас числа целые (какой для целых),но могут быть и дробные (какой
>для дробных)? Тип double и real не подходят.Есть ли что-нить типа
>double precision как в Postgres?

И еще функцию (типа atof,atol),переводящую число из 11-13 знаков в этот тип (можно целый).

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Какой тип поддерживает большие числа в Си?"  
Сообщение от DeadMustdie email(??) on 19-Мрт-06, 13:14 
>Какой тип поддерживает большие числа (11 и более знаков до запятой)в Си?
>Сейчас числа целые (какой для целых),но могут быть и дробные (какой
>для дробных)? Тип double и real не подходят.Есть ли что-нить типа
>double precision как в Postgres?

К сожалению, сие зависит от компилятора. Большинство современных компиляторов
кушают тип данных по имени `long long`, который по стандарту должен быть
не менее чем 64-битным. То бишь туда можно засунуть десятичные числа длиной
до 19 знаков любые и даже некоторые длиною 20 знаков.

MS для той же цели изобрела тип __int64. Впрочем, я слышал, что последние
версии VC++ кушают уже и long long.

Префикс размера для printf и scanf - 'll'. Нечто вроде
  printf("%lld", (long long)1);
  printf("%llu", (unsigned long long)1);

Microsoft и тут отличилась, там форматные строки другие - I64d и I64u, соответственно.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Какой тип поддерживает большие числа в Си?"  
Сообщение от Ф on 20-Мрт-06, 09:55 
long double

Насколько я знаю для i386 математический сопроцессор может работать с 10-байтными вещественными числами
10 байт  - long double
8  байт  - double
4  байта - float


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру