iPhone上的长双

时间:2009-10-11 05:16:54

标签: iphone objective-c

我正在处理一个需要我使用Long Double变量的应用程序,在C / C ++ / ObjC中,它应该精确到15个浮动值(1.123456789012345),唯一的问题是在iphone上,我可以似乎只使用

显示最多6个位置(1.123456)
NSString *display = [NSString stringWithFormat:@"%Lf",value];

我正在读到iphone瓶颈这些价值观但是没有发现它太多,任何人都有任何想法如何让它返回15点应该如此?谢谢!

2 个答案:

答案 0 :(得分:5)

NSDecimalNumber将为您提供最多38位精度。 NSDecimalNumbers不是本机长双精度数,但支持某些类型转换。

另见This question

答案 1 :(得分:2)

Long double只需在iPhone硬件上映射为double。遗憾的是,你不会得到你认为会有的额外精度。这让我很早就开始了,因为iPhone模拟器可以正确处理长双打,因为它在Mac上运行。

正如Charles建议的那样,您需要使用NSDecimal或NSDecimalNumber来获得额外的精度。此外,涉及这些类型的数学将没有处理小数时看到的正常浮点问题。