我知道得到一个int的倒数会是这样的:
int foo = 5;
float recip = 1/foo;
但你怎么去获得浮动的倒数呢?会不会这样?现在我让用户输入倒数,这不是最佳的。有什么想法吗?
修改
为了澄清这里的一些伪代码:
float input = 0.25;
int recip = (get reciprocal here);
System.out.println(recip); //should return 4
谢谢!
答案 0 :(得分:5)
你会如何将float转换为int?
这取决于你想要在小数部分发生什么。
如果你想砍掉它,你可以施放:
float floatValue = 2.7f;
int value = Math.round(floatValue);
System.out.println(value); // 3
如果要对其进行舍入,请使用JDK库中的各种舍入方法,例如Math.round(float)
。
float input = 0.25f;
int recip = (int)(1.0f / input);
System.out.println(recip); // 4
重新评论:
我正在寻找更多的方法来找到值的倒数,而不是舍入值。例如,如果我有0.25作为我的值,那么我希望得到4作为我的输出等。
如果倒数超过该值,则:
float input = 0.25f;
int recip = Math.round(1.0f / input);
System.out.println(recip); // 4
...切断任何小数部分,或
float
......围绕它。 (并且还有其他四舍五入的方法可以让你控制半场比赛,半场比赛,半场比赛,半场比赛,而不是正向无限,等等。“
旁注:使用double
而不是2.0
几乎没有充分的理由。并注意十进制常数,例如double
,float
。如果您需要f
s,请在最后添加2.0f
:double
。但是再次:使用{{1}}。 : - )