Возможно, название не то, что должно, или, возможно, его дубликат, но в любом случае я застрял и не смог найти правильный ответ здесь или где-либо еще.
Я привык к php, и недавно начал изучать c ++.
Мне нужно преобразовать цикл php, который проходит через юлианские дату / время. В php это довольно просто.
В php я просто создаю переменную с юлианской датой / временем, а затем начинаю цикл с десятичными числами. Пример:
<?php
$jd = 2445874.74375;
for($x=0; $x<=300; $x++) {
echo "new jd = ". $jd;
$jd = $jd + 0.5; // half a day
}
?>
В результате чего получается следующая числовая последовательность
jd = 2445874.74375
jd = 2445875.24375
jd = 2445875.74375
jd = 2445876.24375
jd = 2445876.74375
jd = 2445877.24375
jd = 2445877.74375
jd = 2445878.24375
jd = 2445878.74375
Я новичок в c ++, поэтому я просто попытался скопировать то же самое, но изменил синтаксис, чтобы он компилировался и работал в C ++.
int main() {
double jd = 2445874.74375; // I figured i need a double here?
for(int i = 0; i <= 300; i+=1) {
cout << jd << endl;
jd = jd + 0.5;
}
}
Но когда я запускаю код, результаты показывают общее число, отличное от ожидаемого. Из того, что я понимаю и читаю, число на самом деле не меняется, а форматируется иначе ... Вывод выглядит так ->
2.44587e+06
2.44588e+06
2.44588e+06
2.44588e+06
2.44588e+06
...
2.44589e+06
Но мне нужен номер, похожий на оригинальный. Так что же мне не хватает, что я не понимаю, и, самое главное, как можно восстановить форматирование чисел, как исходное юлианское число даты / времени, которое я вставил в двойник? Мне нужно, чтобы jd вроде 2445874.74375 появился в исходном формате, чтобы заставить работать другую функцию. Так как я могу сделать этот цикл работающим,
как работает в php? Я уже заметил, что при определении переменных в C ++ правильный путь кажется очень важным, тогда как в php он кажется менее важным. Но в любом случае, я не понимаю. Я читал о целых числах, числах с плавающей запятой, двойных числах, символах, строках и т. Д. Но чем больше я изучаю его, тем сложнее он становится для меня ...