gpt4 book ai didi

cocoa - 使用 NSNumberFormatter 验证字符串

转载 作者:行者123 更新时间:2023-12-03 17:25:11 24 4
gpt4 key购买 nike

我正在尝试使用 NSNumberFormatter 将字符串转换为数字。在我的应用程序中,小数点后超过 2 位数字的输入字符串无效,即 @"3.1"@"3.14" 是有效输入,但 @“3.141”不是。

NSNumberFormatter 的文档说 setMaximumFractionDigits: “[s]设置接收者允许输入的小数点分隔符后的最大位数。”

所以,当这段代码时我感到很惊讶:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.maximumFractionDigits = 2;
NSNumber *number = [numberFormatter numberFromString:@"3.141"];
NSLog(@"%@", number);

接受了@"3.141"并给了我以下输出:

3.141

我预计 @"3.141" 的转换会失败(并返回 nil),因为它超出了小数点分隔符后允许的最大位数。

显然我不理解这里的基本内容。 NSNumberFormatter 是否不使用 maximumFractionDigits 作为验证字符串输入的一部分?

最佳答案

根据官方文档中缺乏其他答案或任何指示来猜测:不,NSNumberFormatter 在解析数字时不支持全面验证,并且 maximumFractionDigits 是仅在格式化数字时相关。这似乎与 sscanfstrtof 等一致。

关于cocoa - 使用 NSNumberFormatter 验证字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811776/

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