共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 跳转至页
回复
有奖活动 | |
---|---|
硬核工程师专属补给计划——填盲盒 | |
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! |