0

要获得 的平方根值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)。
我尝试替换longLongValuedoubleValueintegerValue但它并没有改变它。
怎么了?

4

2 回答 2

3

如果文本字段中的值类似于@“9.0001”,则获取 long long 值会截断小数部分。你说你也尝试过 doubleValue,但我怀疑你做了这样的事情:

int mainLabelValue = [mainLabelString doubleValue]; 

代替:

double mainLabelValue = [mainLabelString doubleValue]; 

在第一种情况下,数字也丢失了小数部分,因为 int 不能存储小数部分,long long int 也不能​​。
让我知道您究竟是如何尝试检索文本字段的双精度值的。

于 2012-12-01T14:11:13.750 回答
1

使用NSNumberFormatter它提供了非常广泛和不同的风格(Decimaland 科学等)。文件

于 2012-12-05T19:07:55.653 回答