如何让doubleValue返回超过六位的十进制数?

时间:2012-06-01 01:21:13

标签: objective-c

执行以下操作时:

NSString * scratchString = @“。123456789”;

CGFloat scratchNum = [scratchString doubleValue];

scrathNum包含0.123457

如何让scratchNum包含所有数字?无论我尝试什么,它都会到达6个地方。

1 个答案:

答案 0 :(得分:0)

CGFloat是一个浮点数 - floatdouble(取决于编译器选择的typedef)。

浮点数没有“包含所有数字”的概念。它们的内部表示会有所不同,但在这种情况下,您的C floatIEEE 754 standard表示。

在这种情况下,您的“舍入”是采用该浮点数并将其从二进制形式转换为文本形式的结果。这可能是Xcode IDE本身(例如,可视化调试器中的值),或者您正在使用printf语句并指定了特定的格式。