要获得mainlabelString
的平方根值,我正在使用
- (IBAction)rootPressed:(id)sender
{
NSString *mainLabelString = mainLabel.text;
int mainLabelValue = [mainLabelString longLongValue];
NSString *calculatedValue = [NSString stringWithFormat: @"%f", sqrt(mainLabelValue)];
mainLabel.text = calculatedValue;
}
虽然它确实可以使用88这样的数字,但是我得到的是9.380832,但它并不适用于那个数字,因为它表示平方根是3.000000(而不是3.062814)。
我尝试将longLongValue
替换为doubleValue
和integerValue
,但不会更改它
怎么了?
答案 0 :(得分:3)
如果文本字段中的值类似于@“9.0001”,则获取long long值会截断小数部分。您说您也尝试过doubleValue,但我怀疑您做了类似的事情:
int mainLabelValue = [mainLabelString doubleValue];
而不是:
double mainLabelValue = [mainLabelString doubleValue];
在第一种情况下,数字也会丢失小数部分,因为int不能存储小数部分,也不能存储long long int。
让我知道您是如何确切地尝试检索文本字段的双精度值。
答案 1 :(得分:1)
使用NSNumberFormatter
它提供了非常广泛和不同的风格(Decimaland scientific等)。documentation