iOS 计算数字不显示小数



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

int Vijfhonderdmeter = [_VijfHonderd.text intValue];
int vijftienhonderdmeter = [_vijftienhonderd.text intValue];
int vijfdeeldrie = vijftienhonderdmeter / 3;
int puntentotaal = Vijfhonderdmeter + vijfdeeldrie;
_PuntenTotaal.text = [NSString stringWithFormat:@"%d",puntentotaal];

实际输出应该是8718667,但我的_Puntentotaal标签只显示87。

有人找到解决方案了吗?

顺便说一下:

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

感谢您的时间和帮助:)

3个问题:

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

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

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

3) 使用NSNumberFormatter而不是stringWithFormat:来格式化数字。这将确保它们对于基于区域设置的所有用户来说都是正确的。

在使用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 中前置数据类型的更多信息,请参阅此链接

最新更新