当我在应用程序中使用数字进行计算时,我的输出中没有小数!这是我正在使用的代码:
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
格式化结果。将%f
与double
值一起使用。
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 中前置数据类型的更多信息,请参阅此链接