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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
#1

Какой тип лучше всего подойдет для числа? - C++

11.12.2011, 22:35. Просмотров 1016. Ответов 15
Метки нет (Все метки)

Есть число 2455903.795232, какой для него лучше всего тип переменной использовать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 22:35     Какой тип лучше всего подойдет для числа?
Посмотрите здесь:

Какой тип данных лучше подойдет для приложения, которое делит числа int или float? - C++
Ответ написал int Хотя нутром чую, что float

Какой язык программирования лучше всего подойдет начинающему для взаимодействия с веб-сайтами? - C++
Приветствую, форумчане! Какой язык программирования лучше всего подойдет начинающему для взаимодействия с веб-сайтами? Нужно написать...

Литература по C++: с какой книги лучше всего начинать? - C++
всем привет,две недели по вечерам изучаю C++ но даётся очень нелегко, проблема с литературой, начал с C++ для чайников пролистал...

Смысл const char* и о том, какой тип строк лучше использовать - C++
Я никак не могу понять смысла const char*. Это строка в стиле C, я знаю. Но чем эта запись отличается от char*? Или вообще, просто char?...

Как осуществить ввод числа, не зная какой тип числа будет введён? - C++
И не объявляя вводимую переменную как double...

Какой учебник лучше для изучения С++ - C++
Л. Джонс - С++ за 21 день Р.Лафоре 4е издание - Объектно-ориентированное программирование в С++ Ю.А.Щупак, Т.А.Павловская - C/C++...

Какой компилятор лучше выбрать для проганья на C++? - C++
Добрый день господа,очень хочу попросить совета профессионалов. Учусь программированию на С++,С,но столкнулся с дилеммой,что выбрать к...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
11.12.2011, 22:35     Какой тип лучше всего подойдет для числа? #2
string
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
11.12.2011, 22:39  [ТС]     Какой тип лучше всего подойдет для числа? #3
это есть число и с ним надо будит работать... Думаю стринг не очень подойдет или это пофиг?
prazuber
109 / 109 / 3
Регистрация: 29.04.2010
Сообщений: 240
11.12.2011, 22:40     Какой тип лучше всего подойдет для числа? #4
double. А есть еще варианты?
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,159
11.12.2011, 22:49     Какой тип лучше всего подойдет для числа? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от nonamez123 Посмотреть сообщение
это есть число и с ним надо будит работать... Думаю стринг не очень подойдет или это пофиг?
Это все зависит от того, как с ним надо будит работать
Можно его нарисовать на бумажке и медитировать, глядучи. Можно с чем-то складывать, умножать, в степени возводить, синусы и косинусы дергать. Можно каждую циферку под микроскопом разглядывать и предположительно угадать дату конца света. А так - чего? Хорошее число, рациональное
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
11.12.2011, 22:52  [ТС]     Какой тип лучше всего подойдет для числа? #6
зачотно))) Мне в принципе надо надо из 3 простых
Можно с чем-то складывать, умножать, в степени возводить, синусы и косинусы дергать.
а затем просто
Можно его нарисовать на бумажке и медитировать, глядучи.
Frizar
11 / 11 / 1
Регистрация: 24.04.2011
Сообщений: 116
11.12.2011, 23:03     Какой тип лучше всего подойдет для числа? #7
Цитата Сообщение от nonamez123 Посмотреть сообщение
Есть число 2455903.795232, какой для него лучше всего тип переменной использовать?
Думаю нужно использовать, как уже говорили тип double или long double. Я бы ещё преобразование по формату сделал, а то слишком длинный хвост да и само число.
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
11.12.2011, 23:08  [ТС]     Какой тип лучше всего подойдет для числа? #8
Это так обозначаецо юлианский день. По этому надо именно такого формата.
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,159
12.12.2011, 01:25     Какой тип лучше всего подойдет для числа? #9
Цитата Сообщение от nonamez123 Посмотреть сообщение
Это так обозначаецо юлианский день. По этому надо именно такого формата.
Блин! А до меня то не дошло! Это ровно 08.12.2011 07:05:08. Обидно даже.Уж казалось бы мне юлианские дни надо с пол-взгляда распознавать!
Что могу сказать. Делаю серьезную астрологическую программу. Юзаю юлианский день как double, за много лет проблем не было. Ну, там иногда секундочки лишние выскакивают. Но это поправимо.
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
12.12.2011, 01:32  [ТС]     Какой тип лучше всего подойдет для числа? #10
Ну я уже как бэ решил, но у меня погрешность вылезает... А именно если верить вики, то сечас:
JD=2455903.795232
У меня же:
JD=2455908.793750

Может подскажешь, формулу брал с вики:
C++
1
2
3
4
double a = (14-laikas("%m"))/12.0;
    double y = laikas("%Y") + 4800.0 -a;
    double m = laikas("%m") + 12.0 * a - 3.0;
    double JDN = laikas("%d")+((153.0 * m+2.0)/5.0)+(365.0*y)+(y/4.0)-(y/100.0)+(y/400.0)-32045.0;
Дата
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int laikas(char *formatas ){
    
    time_t rawtime;
    struct tm * timeinfo;
    char buffer [80];
    
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    
    strftime(buffer,80,formatas,timeinfo);
    
    int n=atoi(buffer);
    
    return n;
}
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,159
12.12.2011, 01:37     Какой тип лучше всего подойдет для числа? #11
Хотя есть и другие подходы. Так, в ефемеридах DE 406 юлиань представляется как 2 double, один - целая часть, второй - то что от целой части остается. Но выяснилось, что все это от лукавого, обычный double вполне держит точность.
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
12.12.2011, 01:40  [ТС]     Какой тип лучше всего подойдет для числа? #12
так а по поводу моего кода на прошлой странице? И это, как ты перегнал так бысро обратно ? Есть готовые решения или хотя бы формулы?
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,159
12.12.2011, 01:49     Какой тип лучше всего подойдет для числа? #13
JD=2455908.793750 = 13.12.2011 07:03:00
JD=2455903.795232 = 08.12.2011 07:05:08
Может ты Юлия с Григорием путаешь ?
Программку пошлю. Но не сейчас. Спать охота.

Добавлено через 3 минуты
Цитата Сообщение от nonamez123 Посмотреть сообщение
так а по поводу моего кода на прошлой странице? И это, как ты перегнал так быстро обратно ? Есть готовые решения или хотя бы формулы?
Есть такая прожка - Uranus
http://www.ipasoft.ru/
nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
12.12.2011, 10:01  [ТС]     Какой тип лучше всего подойдет для числа? #14
Цитата Сообщение от Байт Посмотреть сообщение
JD=2455908.793750 = 13.12.2011 07:03:00
JD=2455903.795232 = 08.12.2011 07:05:08
Может ты Юлия с Григорием путаешь ?
Программку пошлю. Но не сейчас. Спать охота.

Добавлено через 3 минуты
Есть такая прожка - Uranus
http://www.ipasoft.ru/
я вот это юзал Вычисление номера юлианского дня (JDN) по дате григорианского календаря

Добавлено через 2 часа 8 минут
В общем подскажите где ошибка, пользуюсь этим Вычисление юлианской даты по дате календаря

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <time.h>
 
using namespace std;
 
int laikas(const char *formatas){
time_t rawtime;
    struct tm * timeinfo;
    char skaicius [80];
    
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    
    strftime(skaicius,80,formatas,timeinfo);
    
    return atoi(skaicius);
}
 
int main(){
double a = (14-laikas("%m"))/12.0;
 
        ///int или double? 
    double y = laikas("%Y") + 4800.0 -a;
    double m = laikas("%m") + 12.0 * a - 3.0;
    double JDN = laikas("%d")+((153.0 * m+2.0)/5.0)+(365.0*y)+(y/4.0)-(y/100.0)+(y/400.0)-32045.0;//Григорианский календарь
    double jdn = laikas("%d")+((153.0 * m+2.0)/5.0)+(365.0*y)+(y/4.0) - 32083.0;//Юлианский календарь
    
    double JD = JDN + (laikas("%H")-12)/24 + laikas("%M")/1440 + laikas("%S")/86400;
        cout >> JD;
    }
Ошибочка где-то в подсчётах...

Добавлено через 8 минут
Да, почитал ещё вики, вычитал вот это
Все операции деления — целочисленные, то есть, остатки деления отбрасываются.
Это при нахождении JDN. Переправил всё на инт за исключением JD. Далее нашел калькулятор юлианского дня. Если вбить там день,месяц,год-то всё совпадает. Кому верить ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2011, 12:42     Какой тип лучше всего подойдет для числа?
Еще ссылки по теме:

Какой тип данных нужен для возведения в степень - C++
Добрый день. При возведении числа в степень столкнулся с проблемой, что при возведении числа 9 в 8 степень (как пример) выдает абракадабру...

Какой тип использовать для создания рекрсивного массива - C++
Здравствуйте. Не в первый раз встречаюсь с различными задачами в которых очень удобно было бы использовать универсальный тип...

Какой тип данных использовать для работы с большими числами? - C++
Здравствуйте! Какой тип данных можно использовать для больших чисел( unsigned long long не получается)?

нужен тип целого числа для числа 19!= 121 645 100 408 832 000 - C++
Нужно посчитать сумму цифр целого положительного числа. double summacifr(double chislo) { double summa=0; while(chislo) ...

Какие методы есть в C++ для работы с файлами и в каких случаях какой лучше применять - C++
Какие методы есть в С++ для работы с файлами и в каких случаях какой лучше применять? обычно пользовался freopen знаю еще есть fopen и ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,159
12.12.2011, 12:42     Какой тип лучше всего подойдет для числа? #15
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void JtoT(double jd, int *dt)   /* jul -> TIME */
{  double f, z, al, a, b, c, d, e, day_d, gmth, jd2; 
   double DvY = 365.25;      /* Дней в году (грубо) */
  
    jd2 = jd + 0.5;
    z = floor(jd2);
    f = jd2 - z;
    if (z<2299161) a = z;
    else   {
       al = floor((z-1867216.25)/36524.25);
       a = z + 1 + al - floor(al/4);
    }
    b = a + 1524;
    c = floor((b-122.1)/DvY);
    d = floor(DvY*c);
    e = floor((b-d)/30.6001);
    day_d = b - d - floor(30.6001*e) + f;
    dt[1] = e-((e<13.5)?1:13);
    dt[2] = c - ((dt[1] < 2.5) ? 4715:4716);
         if (dt[2]<=0) dt[2]--;
    dt[0] = day_d;
    gmth = (day_d - dt[0])*C24;
    dt[3] = (int)gmth;
    gmth = (gmth - dt[3])*60;
    dt[4] = gmth;
    dt[5] = (gmth - dt[4])*60;
}
int dt[6] - День, месяц, год (4 знака), час, мин, сек

Добавлено через 3 минуты
Цитата Сообщение от nonamez123 Посмотреть сообщение
Далее нашел калькулятор юлианского дня. Если вбить там день,месяц,год-то всё совпадает. Кому верить ?
Калькулятор симпатичный. Но считает только дни. С моими расчетами совпадает
Yandex
Объявления
12.12.2011, 12:42     Какой тип лучше всего подойдет для числа?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru