gpt4 book ai didi

ios - 如何将 nsstring 转换为在 Objective-C 中最多 float 2 位小数?

转载 作者:行者123 更新时间:2023-12-01 15:52:19 29 4
gpt4 key购买 nike

当我将 NSString 转换为 Float 最多 2 位小数时,它会在点后自动采用 6 精度.我只想要 2 点后的小数。根据我的说法,在 Objective-C 中,当我们创建一个 Float 时,它会分配内存来存储 float ,比如 8 字节。

因此,如果我将 12.15 分配给一个 Float 变量,它将在该内存位置存储 12.14999998 并且当我获取该 float 时号码,它将从该位置获取该号码并将其提供给我。

最佳答案

没有办法用精确的小数位数或精确的值来存储 float/double:因为这种值的内部表示是二进制的。

如果你想要这样一个精确的值,你将需要使用类 NSDecimalNumber

你初始化你的号码:

NSDecimalNumber *myNumber = [NSDecimalNumber decimalNumberWithString:@"12.87"];

然后,您可以使用以下方法对它们进行数学计算:

- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber
- (NSDecimalNumber *)decimalNumberBySubstracting:(NSDecimalNumber *)decimalNumber
- (NSDecimalNumber *)decimalNumberByMultiplyingBy:(NSDecimalNumber *)decimalNumber
- (NSDecimalNumber *)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber

等等……

NSDecimalNumber decimalNumberSum = [decimalNumberA decimalNumberByAdding:decimalNumberA];

关于ios - 如何将 nsstring 转换为在 Objective-C 中最多 float 2 位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30091968/

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