gpt4 book ai didi

objective-c - printf/appendFormat 中的 float 不精确

转载 作者:行者123 更新时间:2023-11-30 18:59:37 29 4
gpt4 key购买 nike

我有一个浮点值,我想以格式字符串显示它,如果它对应于 int,则显示整数,如果不对应,则显示一位小数。

像这样:

3.1
3
2.9
2.8

现在我陷入了这个概念,我会做类似的事情:

float myFloat = 3.1
float mySecondFloat = 3
[NSString stringWithFormat:@"%g %g", myFloat, mySecondFloat];

我的问题是:

1/类型格式“%g”在大多数情况下都有效,但有时我的结果显示为“0.600001”,而实际上应该是 0.6,因为我所做的只是 0.7 - 0.1。

是否有一种对小数点后 1 位 float 的类型转换,或者可能是按位运算来消除最终的不精确性,或者其他方式使其在 100% 的情况下工作?

感谢您的回答。

最佳答案

如果您在处理十进制数时需要绝对精度,您可以考虑使用 NSDecimalNumber 类。

Number and Value Programming Topics: Using Decimal Numbers

否则,%.1g 格式说明符就可以了。

关于objective-c - printf/appendFormat 中的 float 不精确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794525/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com