共2条
1/1 1 跳转至页
问
今天用KEIL C寫程序時。程序如下:
#include "math.h"
void main(void)
{
unsigned long i;
unsigned char j,k;
j = 0;
i = 0;
for (;j<5;j++)
{
i += pow(10,j);
}
........
}
結果發現。當J大於2時。所得的結果總與實際運算結果差1。即10的3次方應是1000,而pow(10,j)運算得999;10的4次方應是10000,實際運算結果爲9999;邥粫荈loat 與 Long 運算過程中出現的錯誤?該怎麽改?
當j小於2時,所得結果正常,即10的1次方是10,運算得10,10的零次方是1,運算得1。????
#include "math.h"
void main(void)
{
unsigned long i;
unsigned char j,k;
j = 0;
i = 0;
for (;j<5;j++)
{
i += pow(10,j);
}
........
}
結果發現。當J大於2時。所得的結果總與實際運算結果差1。即10的3次方應是1000,而pow(10,j)運算得999;10的4次方應是10000,實際運算結果爲9999;邥粫荈loat 與 Long 運算過程中出現的錯誤?該怎麽改?
當j小於2時,所得結果正常,即10的1次方是10,運算得10,10的零次方是1,運算得1。????
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |