要获取 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)。
我尝试用 doubleValue
和 integerValue
替换 longLongValue
但它没有改变它。
怎么了?
最佳答案
如果文本字段中的值类似于@"9.0001",则获取 long long 值会截断小数部分。你说你也尝试过 doubleValue,但我怀疑你做了这样的事情:
int mainLabelValue = [mainLabelString doubleValue];
代替:
double mainLabelValue = [mainLabelString doubleValue];
在第一种情况下,数字也丢失了小数部分,因为 int 不能存储小数部分,long long int 也不能。
让我知道您究竟是如何尝试检索文本字段的 double 值的。
关于objective-c - 更精确的值平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660132/