我注意到我的一个应用程序中出现了一些奇怪的东西,并且出于某种原因,如果我提交一个小数字,比如1,000,000,000,它将正常运行,但如果我提交一个大数字,比如12,345,678,987,654,321,在这种情况下它是2147483647。所以我设置了一个简单的应用程序,只需要取数字,然后通过
将其作为标签的文本var theNum = textField.text.bridgeToObjectiveC().intValue
numLabel.text = "\(theNum)"
现在,对于较小的数字,它可以正常工作,但像上面的数字那样的大数字并不适用。我应该说我在视图之间转移变量,以防它与它有关。此外,我知道上面的代码是在Swift中,但它在Objective C中做了同样的事情。这真的让我感到困惑,因为我找不到任何理由这样做,所以所有的帮助都将受到赞赏!
由于
答案 0 :(得分:-1)
要以高精度保存一些非常大的数字或数字,您应该使用NSDecimalNumber
类。请注意,这是一个类,而不是原语,您需要分配它,调用stringValue
来获取字符串并对其执行操作,您再次需要使用方法。一个简短的例子:
NSDecimalNumber *number = [[NSDecimalNumber alloc] initWithString:textField.text];
textField.text = number.stringValue;
number = [number decimalNumberByAdding:[[NSDecimalNumber alloc] initWithInteger:10]];