我有以下双精度值:0.000900137869045636
我想将其转换为NSString
.
我已经尝试了以下代码,但无论如何,它都会将值四舍五入:0.000900138
[NSString stringWithFormat:@"%.20lf", [currentLocation coordinate].latitude];
我应该怎么做才能保持双数不变?
谢谢你。
我有以下双精度值: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 创建中。