2

所以,我的转换器应用程序终于可以工作了,但有一个主要问题。它不适用于 IRL iPhone,仅适用于模拟器 iPhone。像这样(IRL iPhone):

IRL iphone

模拟器手机也做同样的事情: 模拟器 iPhone

IDK 为什么这个要小得多。

我能找到的唯一区别是我的手机是挪威语,所以那里的键盘有一个逗号','而不是句号'。

计算它的代码在这里http://pastebin.com/nGaw7Agj

TLDR irl iphone 没有做正确的事情,但 xcode 模拟器可以。

4

1 回答 1

3

我能找到的唯一区别是我的手机是挪威语,所以那里的键盘有一个逗号','而不是句号'。

这就是答案。由于您有不同的语言环境,第一个四舍五入为 13,而不是 13.37。我不知道您在这里使用的是什么数量,但是在这两种情况下,您似乎都在乘以一个常数 ~133.4247,因此两种情况下的计算都是相同的。

问题是您NSNumberFormatter在从字符串中读取值时没有使用。NSNumberFormatter将为您处理语言环境。Using[NSString floatValue]是将字符串转换为数字的一种非常粗略的方法,您无法控制语言环境转换。

在这一行

float input = [inputText.text floatValue];

我建议改为

NSNumberFormatter* fmt = [NSNumberFormatter new];
float input [fmt numberFromString:inputText.text].floatValue;
于 2012-10-23T16:55:54.090 回答