2012-12-01 76 views
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)。
我試着用doubleValueintegerValue替換longLongValue,但它不會改變它。
有什麼問題?

+3

在張貼這裏之前,您應該做更多的研究。這是您在過去三個小時內第三次發佈了與此相關的不同問題的相同代碼塊。 –

回答

3

如果該值在文本字段就像@「9.0001」,得到了很長很長的值截斷小數part.You說你也試過的doubleValue,但我懷疑你做了這樣的事情:

int mainLabelValue = [mainLabelString doubleValue]; 

相反的:

double mainLabelValue = [mainLabelString doubleValue]; 

在失去數的小數部分也因爲int類型不能存儲小數部分的第一例,也不是很長很長INT。
讓我知道你是如何準確地檢索文本字段的double值。

1

使用NSNumberFormatter它提供了非常廣泛和不同風格(Decimaland科學等)。 documentation