XCode不使用十进制数,只使用整数

时间:2014-10-14 11:02:15

标签: ios decimal calculator

我试图将三个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]; }

3 个答案:

答案 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类型的变量只能存储整数。 如果您想使用浮点数,请使用适当的数据类型,例如floatdouble,具体取决于您所需的精度和值的大小。

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]; 

}