共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 跳转至页