Ios 获取介于0和1之间的浮点值

Ios 获取介于0和1之间的浮点值,ios,objective-c,Ios,Objective C,我正在努力获得一个基于百分比的0到1之间的值,即50%表示0.5。问题是,我使用的是以下两个值,它似乎总是返回0 即使xPosition和yPosition设置为50%,我仍然得到0 float x_point = (1 / 100) * xPosition; float y_point = (1 / 100) * yPosition; 有什么想法吗 谢谢1/100是一个整数表达式,它等于0,因此(1/100)*xPosition将始终是0 你可以改变: float x_point = (1

我正在努力获得一个基于百分比的0到1之间的值,即50%表示0.5。问题是,我使用的是以下两个值,它似乎总是返回0

即使xPosition和yPosition设置为50%,我仍然得到0

float x_point = (1 / 100) * xPosition;
float y_point = (1 / 100) * yPosition;
有什么想法吗


谢谢

1/100
是一个整数表达式,它等于
0
,因此
(1/100)*xPosition
将始终是
0

你可以改变:

float x_point = (1 / 100) * xPosition;
致:

或者更简单地说:

float x_point = 0.01 * xPosition;

然后将使用浮点运算对其求值,并给出所需的结果。

1/100
是一个整数表达式,它等于
0
,因此
(1/100)*xPosition
始终为
0

你可以改变:

float x_point = (1 / 100) * xPosition;
致:

或者更简单地说:

float x_point = 0.01 * xPosition;

然后,将使用浮点运算对其进行计算,并给出所需的结果。

@PaulR的答案非常棒,但是如果您在运行时得到这些数字(1/100),您可能希望

NSInteger xPosition = 50;
NSInteger yPosition = 40;

float number = 1; //or set runtime
float divider = 100; //or set runtime

float x_point = (number / divider) * xPosition;
float y_point = (number / divider) * yPosition;

NSLog(@"x_point = %.f | y_point = %.f",x_point,y_point);
输出:x|u点=0.5 | y|u点=0.4


@PaulR的答案非常棒,但是如果你在运行时得到这些数字(1/100),你可能会喜欢这样做

NSInteger xPosition = 50;
NSInteger yPosition = 40;

float number = 1; //or set runtime
float divider = 100; //or set runtime

float x_point = (number / divider) * xPosition;
float y_point = (number / divider) * yPosition;

NSLog(@"x_point = %.f | y_point = %.f",x_point,y_point);
输出:x|u点=0.5 | y|u点=0.4


为了澄清,50%表示
xPosition
yPosition
为0.5,对吗?基本上xPosition的值在0和100(百分比)之间,因此如果上面的值是(1/100)*50,我应该得到0.5。为了澄清,50%表示
xPosition
yPosition
为0.5,正确吗?基本上xPosition的值在0和100之间(百分比),因此如果上面的值是(1/100)*50,我应该得到0.5。可能值得指出的是,这可以进一步简化为
x\u point=xPosition/100.0
@max\ucode>xPosition*0.01,对于处理器来说更可取:D(如果你有兴趣节省几纳秒:D)@Fogmeister也一样;)可能值得指出的是,这可以进一步简化为
x_point=xPosition/100.0
@max\ucode>xPosition*0.01对于处理器来说更可取:D(如果你有兴趣节省几纳秒:D)@福格迈斯特也是;)