-1
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
爲什麼這兩個例子產生不同的結果?
我同意但是; 如果你調試這些代碼;雙M = pow(M_E,log(7)); 您可以在Xcode調試窗口中看到M = 7。 但下面的命令錯誤的工作和生產6.99999999999 NSString * B = [[NSNumber numberWithDouble:pow(M_E,log(7))] stringValue]; –
@BulentUNALMIS:所以調試窗口的代表double和NSNumber的'stringValue'的例程不相同。 – Chuck