可可 - 将双精度转换为字符串
Posted
技术标签:
【中文标题】可可 - 将双精度转换为字符串【英文标题】:cocoa - converting a double to string 【发布时间】:2010-03-18 15:44:01 【问题描述】:我有一个双数,我想把它转换成字符串。
例如,数字是这样的
24.043333332154465777...
但如果我使用类似的东西将其转换为字符串
NSString *myString = [NSString stringWithFormat:@"%f", myDouble];
字符串只是
24.043333
我如何得到一个完整的字符串,对应于整个双数?我还有什么其他方法可以转换它?
【问题讨论】:
【参考方案1】:另一个选项,因为您在对 mipadi 的回答的评论中要求其他方式:
使用NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
创建一个NSNumber
然后拨打[myDoubleNumber stringValue];
来自文档:
将接收者的值作为人类可读的字符串返回,通过调用 descriptionWithLocale: 创建,其中 locale 为 nil。
【讨论】:
这两种方法 - 你的和 mipadi 的 - 都非常适合转换,但由于某种原因,mipadi 给了我一个与原始数字略有不同的字符串。你给我同样的号码...谢谢。【参考方案2】:[NSString stringWithFormat:@"%.20f", myDouble];
或
@(myDouble).stringValue;
【讨论】:
【参考方案3】:您可以将宽度格式说明符传递给stringWithFormat
。
NSString *myString = [NSString stringWithFormat:@"%.20f", myDouble];
将myDouble
格式化为小数点后 20 位。
【讨论】:
谢谢!!!只是最后一个问题。这是将双精度转换为字符串的唯一方法吗?我的意思是,使用 stringWithFormat? @Hafthor:不需要lf
。 f
是双精度的格式说明符,如 Cocoa 字符串文档 (developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…) 和此问题 (***.com/a/4264154/28804) 中所述。【参考方案4】:
还有NSNumberFormatter。
【讨论】:
【参考方案5】:[NSString stringWithFormat:@"%.0f", myDouble];
使用这个没有十进制值
【讨论】:
以上是关于可可 - 将双精度转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章