我正在编写一个将十进制度转换为度、分、秒的程序。这是它应该做的:
-118.1406209154 = 118 degrees 8 minutes 26.2342 seconds West.
W If it is negative then it is either west longitude or south latitude
118 The degrees are left of the decimal place
8 Multiply the decimal portion (0.140620915) by 60 to get decimal minutes (8.4372549). The minutes are left of the decimal place.
26.2353 Multiply the decimal portion (0.4372549) by 60 to get decimal seconds.
这是我到目前为止的代码,但是,当我运行它时的问题是它只打印 decimalDegrees 值,没有别的。我不知道为什么。非常感谢任何提示/帮助。
double decimalDegrees = -118.1406209154;
double degrees;
double minutes;
double seconds;
char longitude;
char latitude;
double temp;
int main(int argc, char **argv)
{
minutes = decimalDegrees - (int)decimalDegrees; //get the decimal portion of decimalDegrees
degrees = decimalDegrees - minutes; //get degrees by removing the decimal portion
minutes = minutes*60.0;
temp = minutes - (int)minutes; //get decimal portion
minutes = minutes - temp; //remove decimal portion from minutes
seconds = temp * 60.0;
printf("%0.10lf ", decimalDegrees);
printf("%lf degrees ", degrees);
printf("%lf minutes ", minutes);
printf("%0.4lf seconds ", seconds);
return 0;
}