2013-02-22 93 views
0

我正在構建一個計算器,並遇到顯示不必要的0(它不顯示它們,我希望它)的問題。顯示不必要的「0」輸入

它現在所做的一個例子如下。 [表示計算器屏幕]

[空白計算器屏幕]

用戶點擊 「4」

[4]

用戶命中 「」

[4]

用戶點擊 「0」

[4]

用戶點擊 「0」

[4]

用戶點擊 「5」

[4.005]

相反,我希望把它做到以下幾點:

[空白計算器屏幕]

用戶點擊 「4」

[4]

用戶點擊 「」

[4]

用戶點擊 「0」

[4.0]

用戶點擊 「0」

[4.00]

用戶點擊 「5」

[4.005]

我用一個數字格式化,如下圖所示...

formatter = [[NSNumberFormatter alloc] init]; 
    formatter.numberStyle = NSNumberFormatterDecimalStyle; 
    formatter.maximumIntegerDigits = 13; 
    formatter.minimumFractionDigits = 0; 
    formatter.maximumFractionDigits = 13; 
    formatter.maximumSignificantDigits = 13; 
    formatter.usesGroupingSeparator = YES; 
    formatter.groupingSeparator = @","; 
    formatter.decimalSeparator = @"."; 
    formatter.generatesDecimalNumbers = true; 

我用下面的叫我的號碼...

buttonScreen.text = [formatter stringFromNumber: 
[NSNumber numberWithDouble:currentNumber]] 

謝謝!

+0

有什麼區別? [4.005]與[4.005]對比[4.005] – 2013-02-22 21:12:46

+0

當輸入時,如果它在屏幕上從4跳到4.005,看起來不正確,特別是當有更多的0時(4到4.000000008與顯示每個0增加它是鍵控的) – 2013-02-22 21:14:10

回答

1

它不會給你零,因爲4是4,4.0,4.00等的精確浮點表示。我建議你將用戶輸入存儲到NSString *中,然後在需要時將其轉換爲NSNumber做實際的數學。

0

您可以通過在「=」或操作鍵被按下之前不評估輸入來解決此問題。

您只需添加字符串,並在輸入完成後將字符串轉換爲正確的數字,因爲已按下不同的鍵,所以您知道這一點。