2011-08-06 15 views
0

2つのUITextFieldの割合を計算しようとしているときに、UITextField内に「NAN」というメッセージが表示されます。次のように私の現在のコードは次のとおりです。UITextField内でエラーメッセージを受け取る

float firstFloat = [self.tex15.text floatValue]; 
float secondFloat = [self.tex16.text floatValue]; 
float answer = secondFloat/firstFloat * 100; 
self.tex20.text = [NSString stringWithFormat:@"%.1f%%",answer]; 
+0

firstFloatの値は何ですか?私はそれがゼロだと思う。 – taskinoor

+0

"IF"ステートメントの何らかの形式を使用する必要があるのだろうかと思います。 – TWcode

答えて

0

あなたのIBOutlet接続に問題があると思われます。以下のコードは問題なく動作します:

@interface testViewController : UIViewController { 
    UITextField *tf1; 
    UITextField *tf2; 
    UILabel *result; 
} 

@end 

@implementation testViewController 

- (void)dealloc{ 
    [tf1 release]; 
    [tf2 release]; 
    [result release]; 
    [super dealloc]; 
} 

-(void) click:(id) obj { 
    float firstFloat = [tf1.text floatValue]; 
    float secondFloat = [tf2.text floatValue]; 
    float answer = secondFloat/firstFloat * 100; 
    result.text = [NSString stringWithFormat:@"%.1f%%",answer]; 
} 

-(void) viewWillAppear:(BOOL)animated { 

    tf1 = [[UITextField alloc]initWithFrame:CGRectMake(10, 10, 200, 30)]; 
    tf1.backgroundColor = [UIColor whiteColor]; 

    tf2 = [[UITextField alloc]initWithFrame:CGRectMake(10, 50, 200, 30)]; 
    tf2.backgroundColor = [UIColor whiteColor]; 

    result = [[UILabel alloc]initWithFrame:CGRectMake(10, 90, 200, 30)]; 
    result.backgroundColor = [UIColor whiteColor]; 

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btn.frame = CGRectMake(10, 130, 50, 30); 
    [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:btn]; 

    [self.view addSubview:tf1]; 
    [self.view addSubview:tf2]; 
    [self.view addSubview:result]; 

} 

@end 
1

NaN非数を意味します。これは、計算結果が有効な数値にならないことを示します。私の最初の推測は、firstFloat0であることです。つまり、ゼロで割り切ろうとしています。これは、self.tex15nilであることによって発生している可能性があります。IBOutletが正しく接続されていることを確認してください。

+0

IBOutletは問題ありません。このコードはIBAction ID送信者の範囲内にあります。タップされたUITextField内に+1を加えるボタンタップとして使用されます。 tex15またはtex16をタップしないと、NANが表示されます。 – TWcode

関連する問題