我正在寻找一种将小数转换为 C 中的度数的方法。例如,C 中的 asin() 函数返回一个十进制数,但我需要该数字以度°分“秒”为单位。
例如 1.5 将是 1°30'0"
我正在寻找一种将小数转换为 C 中的度数的方法。例如,C 中的 asin() 函数返回一个十进制数,但我需要该数字以度°分“秒”为单位。
例如 1.5 将是 1°30'0"
该asin
函数返回弧度。一个圆有 2 个 π 弧度。
一圈有360度,一个度有60分,一分钟有60秒。所以一圈有360*60*60秒。
double radians = asin(opposite / hypotenuse);
int totalSeconds = (int)round(radians * 360 * 60 * 60 / (2 * M_PI));
int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;
int degrees = totalSeconds / (60 * 60);
不确定如何使用 ti84 上的 >dms 之类的命令执行此操作,但您可以使用逻辑。
将小数乘以 60(即 0.135 * 60 = 8.1)。
整数变为分钟 (8')。
取剩余的小数并乘以 60。(即 0.1 * 60 = 6)。
稍作搜索,我在 c# 中找到了这个: 从十进制度转换为度分秒十分之一。
double decimal_degrees;
// set decimal_degrees value here
double minutes = (decimal_degrees - Math.Floor(decimal_degrees)) * 60.0;
double seconds = (minutes - Math.Floor(minutes)) * 60.0;
double tenths = (seconds - Math.Floor(seconds)) * 10.0;
// get rid of fractional part
minutes = Math.Floor(minutes);
seconds = Math.Floor(seconds);
tenths = Math.Floor(tenths);
但正如他所说,它需要首先从弧度转换为度数。