当我在我的应用程序中使用数字计算时,我的输出中没有小数! 这是我正在使用的代码:
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).
感谢您的时间和帮助:)
答案 0 :(得分:2)
3个问题:
1)您正在使用带整数值的整数除法。如果需要浮点数,则需要浮点值并进行浮点除法:
double Vijfhonderdmeter = [_VijfHonderd.text doubleValue];
double vijftienhonderdmeter = [_vijftienhonderd.text doubleValue];
double vijfdeeldrie = vijftienhonderdmeter / 3.0;
2)您正在使用%d
格式化结果。将%f
与double
值一起使用。
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