我正在处理一个需要我使用Long Double变量的应用程序,在C / C ++ / ObjC中,它应该精确到15个浮动值(1.123456789012345),唯一的问题是在iphone上,我可以似乎只使用
显示最多6个位置(1.123456)NSString *display = [NSString stringWithFormat:@"%Lf",value];
我正在读到iphone瓶颈这些价值观但是没有发现它太多,任何人都有任何想法如何让它返回15点应该如此?谢谢!
答案 0 :(得分:5)
NSDecimalNumber将为您提供最多38位精度。 NSDecimalNumbers不是本机长双精度数,但支持某些类型转换。
答案 1 :(得分:2)
Long double只需在iPhone硬件上映射为double。遗憾的是,你不会得到你认为会有的额外精度。这让我很早就开始了,因为iPhone模拟器可以正确处理长双打,因为它在Mac上运行。
正如Charles建议的那样,您需要使用NSDecimal或NSDecimalNumber来获得额外的精度。此外,涉及这些类型的数学将没有处理小数时看到的正常浮点问题。