gpt4 book ai didi

iphone - NSNumberFormatter-DecimalStyle-编辑格式化数字时,其结果为0

转载 作者:行者123 更新时间:2023-11-28 23:11:39 25 4
gpt4 key购买 nike

我使用下面的代码将输入的字符格式化为十进制样式,我在 textFieldShouldEndEditing 中使用下面的代码:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

[formatter setNumberStyle:NSNumberFormatterDecimalStyle];

long long num = [[formatter numberFromString:textField.text] longLongValue];

NSString *formattedOutput = [formatter stringFromNumber:[NSNumber numberWithLongLong:num ]];

textField.text = formattedOutput;

[formatter release];

我在上面的代码中遇到一个问题,第一次它正常工作但是当我们回到文本字段并编辑,然后从它出来时,值变为 0,

比如我输入初始值123456789,正确得到输出123,456,789。如果我然后重新输入并将文本字段编辑为 123,456,78,则该字段将填充 0,当它应该是 12,345,678 时。

最佳答案

NSNumberFormatter 取决于正确格式化的文本。

因此,当您从号码中删除最后一位数字时...也就是说,号码现在的样子:

123,456,78

现在数字格式不正确,NSNumberFormatter 假定它不是有效数字并返回零。

如果你想从你的文本字段中获得万无一失的 long long 值,在转换之前删除逗号(同时验证文本字段以确保它只有 0-9 数字)并且你应该一切顺利。

关于iphone - NSNumberFormatter-DecimalStyle-编辑格式化数字时,其结果为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8091208/

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