我有以下双重值:0.000900137869045636
我想将其转换为NSString
。
我已尝试过以下代码,但无论如何,它都将值舍入为此:0.000900138
[NSString stringWithFormat:@"%.20lf", [currentLocation coordinate].latitude];
我应该怎么做才能保持双号?
谢谢。
答案 0 :(得分:40)
使用
创建NSNumber NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
然后致电
[myDoubleNumber stringValue];
答案 1 :(得分:1)
简短回答:使用%.18lf
- 使用0.000900137869045633测试 - > 0.000900137869045639。但是,不要自欺欺人,这是精确的,它只会因为四舍五入而起作用。
答案 2 :(得分:0)
就我所见,您的代码似乎没有任何问题:我只是尝试了以下内容
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创建中。