Раньше была небольшая неточность в формуле, она выглядела так

mArcs = (int32_t) (deg * 3600 + min * 60) * 1000 из-за округления была не больная потеря в точности
This commit is contained in:
cfif 2025-10-21 11:32:01 +03:00
parent a42ebc26d3
commit 82b643b0cb
1 changed files with 2 additions and 3 deletions

View File

@ -26,11 +26,10 @@ char cConvertDecToMilliArcSec(double dec, int32_t *mArcs, double *gradus) {
}
char cConvertDecToMilliArcSecFromDegMin(double deg, double min, int32_t *mArcs, double *gradus) {
double sec = 0.0;
if (gradus != NULL) *gradus = deg + min / 60.0 + sec / 3600.0;
if (gradus != NULL) *gradus = deg + min / 60.0;
if (mArcs != NULL) *mArcs = (int) (deg * 3600 + min * 60) * 1000 + (int) (sec * 1000); // mArcseconds
if (mArcs != NULL) *mArcs = (int32_t) ((deg * 3600 + min * 60) * 1000); // mArcseconds
return 0;
}