Ios 目标C数学未返回正确值

Ios 目标C数学未返回正确值,ios,objective-c,c,math,floating-point,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); 它返回750000000 我对这一点迷惑不解,不确定数学是否错误,变量类型是否需要从float更改,或者是否有一个目标c内置的百分比函数可以使用。需要学习“c”语言 不正确: float x = ((10 / 10

我想在目标c中做一个百分比和

10/100*75=7.5

float x = ((10 / 100) * 75);
这将返回0.000000

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

1024/100*75=768

float x = ((1024 / 100) * 75);
它返回750000000


我对这一点迷惑不解,不确定数学是否错误,变量类型是否需要从float更改,或者是否有一个目标c内置的百分比函数可以使用。

需要学习“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”使数字成为浮点数。

有必要学习“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”使数字成为浮点数。

有必要学习“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”使数字成为浮点数。

有必要学习“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”使该数字成为浮点数。

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

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

所以,要么选一个数字

float x = ((10 / (float)100) * 75);
或者在数字上加一个“小数部分”,使之成为一个浮点数

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

注意:撇开100.0实际上是双精度的差异不谈。。。这可能是另一个常见的“谷歌可搜索”问题…

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

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

所以,要么选一个数字

float x = ((10 / (float)100) * 75);
或者在数字上加一个“小数部分”,使之成为一个浮点数

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

注意:撇开100.0实际上是双精度的差异不谈。。。这可能是另一个常见的“谷歌可搜索”问题…

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

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

所以,要么选一个数字

float x = ((10 / (float)100) * 75);
或者在数字上加一个“小数部分”,使之成为一个浮点数

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

注意:撇开100.0实际上是双精度的差异不谈。。。这可能是另一个常见的“谷歌可搜索”问题…

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

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

所以,要么选一个数字

float x = ((10 / (float)100) * 75);
或者在数字上加一个“小数部分”,使之成为一个浮点数

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

注意:撇开100.0实际上是双精度的差异不谈。。。这可能是另一个常见的“谷歌能力”问题…

正如@Jody所说,没有必要将每个数字指定为浮点数,但这将有助于避免错误。正如@Jody所说,没有必要将每个数字指定为浮点数,但这将有助于避免错误。正如@Jody所说,没有必要将每个数字指定为浮点数,但它会帮助避免错误。如@Jody所述,不必将每个数字指定为浮点数,但这将有助于避免错误。