2

这是我的代码:

int resultInt = [ja.resultCount intValue];
float pages = resultInt / 10;


NSLog(@"%d",resultInt);
NSLog(@"%.2f",pages);

resultInt 从 php 脚本返回值为 3559 所以页面结果应该是 355.9 但我得到的结果是 355.00 这是不正确的

4

2 回答 2

1

采用

float pages = resultInt / 10.0f;

int/intint 但是int/float或者float/intfloat


编辑以获取更多解释

重要的是要记住,数学运算的结果值受接收变量数据类型规则的约束。除法运算的结果可能会产生一个浮点值。但是,如果分配给整数,小数部分将丢失。同样重要但不太明显的是对几个整数执行操作并分配给非整数的效果。在这种情况下,结果在被隐式转换之前被计算为整数。这意味着尽管将结果值分配给浮点变量,但小数部分仍会被截断,除非首先显式转换至少一个值。以下示例说明了这一点:

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
于 2012-12-20T15:46:41.950 回答
1

这与您使用整数而不是浮点数有关。告诉你正在使用的变量它们是浮点数,你就完成了。

int resultInt = [ja.resultCount intValue];
float pages = (float)resultInt / 10.f;
于 2012-12-20T15:47:47.167 回答