gpt4 book ai didi

iphone - 这种字符串格式有什么问题(模拟器和设备上的行为不同)?

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:14 25 4
gpt4 key购买 nike

我在按下数字时执行了这段代码:

    NSString *currentValue = [@"" stringByAppendingFormat:@"%.02f", [[[[[textField text] stringByReplacingOccurrencesOfString:@"." withString:@""] stringByReplacingOccurrencesOfString:@"," withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""] doubleValue]/100.0f];
//I am using this to obtain always a number with 2 decimals.

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setMinimumFractionDigits:2];
[f setMaximumFractionDigits:2];
[f setGroupingSeparator:@" "];

NSNumber *currentNumberValue = [f numberFromString:currentValue];
NSLog(@"1: %@", currentValue);
NSLog(@"2: %@", [currentNumberValue stringValue]);

现在,如果我在模拟器中运行它并按 3,我会得到以下结果:

1: 0.03
2: 0.03

如果我在我拥有的设备上运行它:

1: 0.03
2: 0

所以基本上在设备上格式化的数字是 0。
我还注意到,在模拟器上我得到“.”作为小数点分隔符,而在设备上我得到“,”。

正因为如此,它永远不会更进一步。我按它的任何数字仍然是 0。

似乎是什么问题?

最佳答案

您的设备显然设置为使用 , 作为小数点分隔符的欧洲(或任何地方)语言环境。尝试在您 allocinit 您的数字格式化程序的行之后添加此行:

[f setDecimalSeparator:@"."];

或使用 setLocale 方法(或更改设备设置的区域设置)。

关于iphone - 这种字符串格式有什么问题(模拟器和设备上的行为不同)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027745/

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