我试图将三个TextField的值乘以数字。这些值可以包含小数位。在乘法中,Objective-C不考虑小数位。例如,如果数字是3.45,它只会乘以3而不是小数。可能是一个基本问题,但我很困难,真的需要帮助!
这是我目前使用的代码:
- (IBAction)CalculateSimple:(id)sender {
int sum = [[principal text] intValue] * [[rate text] intValue] * [[loan text] intValue];;
total.text = [NSString stringWithFormat:@"$%d", sum]; }
答案 0 :(得分:1)
您正在使用intValue(返回整数类型,因此您的计算是在整数上完成的)。您需要使用floatValue或doubleValue(根据您的需要)。 另外 - 检查int / float / double类型,如果你还不知道它们。
答案 1 :(得分:1)
使用double
代替int
:
double sum = [[principal text] doubleValue] *
[[rate text] doubleValue] *
[[loan text] doubleValue];
total.text = [NSString stringWithFormat:@"$%f", sum];
答案 2 :(得分:1)
您将每个操作数转换为intValue
。此外,您的结果也被声明为int
变量。
int
类型的变量只能存储整数。
如果您想使用浮点数,请使用适当的数据类型,例如float
或double
,具体取决于您所需的精度和值的大小。
以documentation on values in Objective-C为参考。 在打印结果时,还必须将占位符与数据类型相匹配。 请参阅String Programming Guide
因此,考虑到这一点,您的方法将如下所示:
- (IBAction)CalculateSimple:(id)sender {
float sum = [[principal text] floatValue] * [[rate text] floatValue] * [[loan text] floatValue];
total.text = [NSString stringWithFormat:@"$%f", sum];
}