可可 - 将双精度转换为字符串

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:不需要lff 是双精度的格式说明符,如 Cocoa 字符串文档 (developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…) 和此问题 (***.com/a/4264154/28804) 中所述。【参考方案4】:

还有NSNumberFormatter。

【讨论】:

【参考方案5】:

[NSString stringWithFormat:@"%.0f", myDouble];

使用这个没有十进制值

【讨论】:

以上是关于可可 - 将双精度转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

Java:将双精度数转换为字符串

SQL Server CE 转换/将双精度转换为字符串

将双精度转换为字符数组 C++

将双精度数转换为字符串时在小数点前保留零

在 C++ 中使用 boost::lexical_cast 将双精度转换为字符串?

将双精度转换为双精度,带一位小数和一位小数?