0
执行以下操作时:如何获得doubleValue返回六位以上的十进制数?
NSString * scratchString = @“。123456789”;
CGFloat scratchNum = [scratchString doubleValue];
scrathNum包含0.123457
我怎样才能得到scratchNum包含所有的数字?无论我尝试什么,它都会到达6个地方。
执行以下操作时:如何获得doubleValue返回六位以上的十进制数?
NSString * scratchString = @“。123456789”;
CGFloat scratchNum = [scratchString doubleValue];
scrathNum包含0.123457
我怎样才能得到scratchNum包含所有的数字?无论我尝试什么,它都会到达6个地方。
CGFloat
是一个浮点数 - 一个float
或double
(取决于哪个typedef
由编译器选择)。
没有浮点数不包含“包含所有数字”的概念。他们的内部表示会有所不同,但在这种情况下,您的代码为IEEE 754 standard。
在这种情况下,您的“四舍五入”是任何采用该浮点数并将其从二进制形式转换为文本形式的结果。这可能是Xcode IDE本身(例如,可视化调试器中的值),或者您正在使用printf
语句并且指定了特定的格式。
我明白了。但是我写了一小段代码:short i = 0; ((scratchNum-floor(scratchNum))!= 0)scratchNum = [scratchString doubleValue] * pow(10,++ i); } 在这种情况下,循环结束时I = 6。那也是Xcode吗? –