|
小弟最近在做GPS定位的問題,涉及到將度分制轉(zhuǎn)換為度的問題。
問題詳情:將一個有六位小數(shù)的浮點數(shù)除以60之后得到其各位的數(shù)值
單片機(jī)源程序如下:
- int a;
- char latitude[] = {'3','0','3','0','.','0','6','7','4','1','1'};
- a = (((latitude[2]-48)*10+(latitude[3]-48)+(latitude[5]-48)*0.1+(latitude[6]-48)*0.01+(latitude[7]-48)*0.001+(latitude[8]-48)*0.0001+(latitude[9]-48)*0.00001+(latitude[10]-48)*0.000001)/60.000000)*1000000;
- latitude[2] = '.';
- latitude[3] = a/100000+0x30;
- latitude[4] = a%100000/10000+0x30;
- latitude[5] = a%10000/1000+0x30;
- latitude[6] = a%1000/100+0x30;
- latitude[7] = a%100/10+0x30;
- latitude[8] = a%10+0x30;
- latitude[9] = '\0';
復(fù)制代碼 代碼中l(wèi)atitude[]數(shù)組保存的是接收到的緯度數(shù)據(jù),其值為30度30.067411分,轉(zhuǎn)換成度就需要把30.067411除以60,得到0.501123(保留6位小數(shù)),再加上30就得到了30.501123度,至此轉(zhuǎn)換完成。
小弟上面貼出的代碼在VS code里面可以完成上述功能,但是在單片機(jī)里面就無法完成,不知道是哪里出了問題,請求大神指點,跪謝。。
不知道我把問題表達(dá)清楚沒有,如果沒有的話歡迎大家提出,我補(bǔ)充
|
|