iOS目标-C:在浮点数上使用modulo从英尺得到“英寸”

时间:2013-05-06 07:40:18

标签: ios objective-c c modulo

我正在尝试制作一个简单的物镜-C高度转换器。输入是一个脚的(浮点)变量,我想转换为(int)英尺和(浮动)英寸:

float totalHeight = 5.122222;
float myFeet = (int) totalHeight; //returns 5 feet
float myInches = (totalHeight % 12)*12; //should return 0.1222ft, which becomes 1.46in

但是,我一直从xcode中得到一个错误,我意识到模运算符只适用于(int)和(long)。有人可以推荐一种替代方法吗?谢谢!

3 个答案:

答案 0 :(得分:22)

即使modulo适用于float,也可以使用:

fmod()

你也可以这样使用......

float totalHeight = 5.122222;
float myFeet = (int) totalHeight; //returns 5 feet
float myInches = fmodf(totalHeight, myFeet);
NSLog(@"%f",myInches);

答案 1 :(得分:1)

为什么不使用

CGFloat myInches = totalHeight - myFeet;

答案 2 :(得分:0)

如前所述,减法是要走的路。只需记住通过乘以12:

将十分之一英尺转换为英寸
float totalHeight = 5.122222;
int myFeet = (int) totalHeight;
float myInches = (totalHeight - myFeet) * 12;