double M=log(7);
M=pow(M_E,M); // M = 7 !!!!!!
NSString *B = [[NSNumber numberWithDouble:M] stringValue]; // B=6.999999999 !!!!
可是:
double M=7;
NSString *B = [[NSNumber numberWithDouble:M] stringValue]; // B=7
为什么这两个例子产生不同的结果?
答案 0 :(得分:1)
浮点值无法准确表示每个实数,因此您通常会略微偏离这样的结果。例如,(1.0 / 3.0) * 3.0
并不精确地给出1。