我试图在目标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内置百分比函数。
答案 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"使数字成为浮点数。