次の二重値があります:0.000900137869045636
をNSString
に変換したい。
私は次のコードを試しましたが、何があっても、値をこれに丸めます:0.000900138
[NSString stringWithFormat:@"%.20lf", [currentLocation coordinate].latitude];
ダブルナンバーをそのままにするにはどうすればよいですか?
ありがとうございました。
を使用してNSNumberを作成する
NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
次に電話します
[myDoubleNumber stringValue];
短い答え:%.18lf
-0.000900137869045633でテスト-> 0.000900137869045639。ただし、これは正確です。丸めが原因でのみ機能します。
私の知る限り、コードに問題はないようです。次のことを試したところ、
int main(int argc, const char * argv[])
{
double foo = 0.000900137869045636;
NSLog([NSString stringWithFormat:@"%.20lf", foo]);
return 0;
}
ログ出力は次のとおりです。
2013-05-10 14:00:18.492 Test[71101:303]
0.00090013786904563598
だからあなたの問題が何であるかはわかりませんが、NSStringの作成にはありません。