Objective C Maths没有返回正确的值

时间:2014-05-11 13:37:16

标签: ios objective-c c math floating-point

我试图在目标c中做一个百分比的总和

10/100 * 75 = 7.5

float x = ((10 / 100) * 75);

返回0.000000。

如果我使用更大的数字而不是10,例如1024

1024/100 * 75 = 768

float x = ((1024 / 100) * 75);

它返回750.000000。

我迷失了这个,不确定数学是否错误,变量类型需要从浮点数变化,或者是否有我可以使用的客观c内置百分比函数。

2 个答案:

答案 0 :(得分:2)

您正在执行整数数学运算,这将永远不会产生浮点结果。 如果您想要浮点数学,请使用浮点数。

涉及至少一个浮点数的数学运算将产生一个浮点数。

所以,要么输出其中一个数字......

float x = ((10 / (float)100) * 75);

或添加小数部分'数字,使其成为一个浮点数...

float x = ((10 / 100.0) * 75);

注意:撇开100.0实际上是双倍的差异...这可能是另一种常见的" google-able"问题...

答案 1 :(得分:1)

需要研究" C"语言。

不正确:

float x = ((10 / 100) * 75);

表示:取整数值10,除以整数值100:结果为0.然后乘以整数值75:结果为0.然后转换为浮点数,结果为0。

正确:

float x = (10.0 / 100.0) * 75.0;

表示:取浮点值10,除以浮点值100:结果为浮点值0.1。然后乘以浮点值75:结果为7.5。

" .0"使数字成为浮点数。