iOS计算数字不显示小数

时间:2014-01-10 19:19:06

标签: ios objective-c nsstring int decimal

当我在我的应用程序中使用数字计算时,我的输出中没有小数! 这是我正在使用的代码:

    int Vijfhonderdmeter = [_VijfHonderd.text intValue];
int vijftienhonderdmeter = [_vijftienhonderd.text intValue];

int vijfdeeldrie = vijftienhonderdmeter / 3;

int puntentotaal = Vijfhonderdmeter + vijfdeeldrie;
_PuntenTotaal.text = [NSString stringWithFormat:@"%d",puntentotaal];

实际输出应为87,18667,但我的_Puntentotaal标签仅显示87。

有没有人有解决方案?

顺便说一下:

(_VijfHonderd.text intValue = 44.05).
(_vijftienhonderd.text intValue = 129.41).

感谢您的时间和帮助:)

2 个答案:

答案 0 :(得分:2)

3个问题:

1)您正在使用带整数值的整数除法。如果需要浮点数,则需要浮点值并进行浮点除法:

double Vijfhonderdmeter = [_VijfHonderd.text doubleValue];
double vijftienhonderdmeter = [_vijftienhonderd.text doubleValue];

double vijfdeeldrie = vijftienhonderdmeter / 3.0;

2)您正在使用%d格式化结果。将%fdouble值一起使用。

3)使用NSNumberFormatter,而非stringWithFormat:格式化数字。这将确保它们根据其区域设置在所有用户中正确显示。

答案 1 :(得分:0)

当您使用int数据类型操作时,您的代码将始终返回非十进制值。

int Vijfhonderdmeter = [_VijfHonderd.text intValue]; here you are getting a non decimal value & later also you are operating it with other non-decimal values. To get decimal values, you should use `double` or `float` datatype.

现在,试试这个:

float Vijfhonderdmeter = [_VijfHonderd.text floatValue];
float vijftienhonderdmeter = [_vijftienhonderd.text floatValue];

float vijfdeeldrie = vijftienhonderdmeter / 3;

float puntentotaal = Vijfhonderdmeter + vijfdeeldrie;
_PuntenTotaal.text = [NSString stringWithFormat:@"%f",puntentotaal];

有关objective-C

中有关premitive数据类型的更多信息,请参阅this link