返回小于1的数字

时间:2011-12-15 06:15:00

标签: objective-c ios

我正在开发一个应用程序,它需要使用给定数字的比率并乘以该比率乘以另一个数字。问题是我不能得到少于1的数字给我适当的小数比,而是它给我零(当它应该是.5)。

示例:

float number = 1/2; // This gives me zero
double number = 1/2; // This also gives me zero

2 个答案:

答案 0 :(得分:6)

如果未指定小数位,则使用整数,这意味着在将结果强制转换为LHS上的类型之前,将使用整数精度执行计算。在代码中使用硬编码时,您希望执行以下操作:

float number = 1.0f / 2.0f;
double number = 1.0 / 2.0;

如果您的目标是使用整数变量进行操作,则需要将它们转换为结果所需的类型。

答案 1 :(得分:4)

试试这个

float number = 1.0/2.0;

请注意,1int,因此您实际上正在使用

(int)1 / (int)2

返回

(int)0

要投射int s的变量,请执行

float number = (float)numerator / (float)denominator;