这是我的代码:
int resultInt = [ja.resultCount intValue];
float pages = resultInt / 10;
NSLog(@"%d",resultInt);
NSLog(@"%.2f",pages);
resultInt从PHP脚本返回,值为3559,因此页面结果应该是355.9但我得到的结果为355.00,这是不对的
答案 0 :(得分:1)
使用
float pages = resultInt / 10.0f;
int/int
是int
但int/float
或float/int
为float
已修改以获取更多解释
重要的是要记住,数学运算的结果值取决于接收变量数据类型的规则。除法运算的结果可以产生浮点值。但是,如果分配给整数,则小数部分将丢失。同样重要且不太明显的是对几个整数执行的操作的效果,并将其分配给非整数。在这种情况下,结果在被隐式转换之前计算为整数。这意味着尽管将结果值分配给浮点变量,但仍会截断小数部分,除非首先显式转换其中至少一个值。以下示例说明了这一点:
int a = 7;
int b = 3;
int integerResult;
float floatResult;
integerResult = a / b; // integerResult = 2 (truncated)
floatResult = a / b; // floatResult = 2.0 (truncated)
floatResult = (float)a / b; // floatResult = 2.33333325
答案 1 :(得分:1)
这与您使用整数而非浮动的事实有关。 告诉你正在使用的变量它们是浮点数并且你已经完成了。
int resultInt = [ja.resultCount intValue];
float pages = (float)resultInt / 10.f;