浮動小数点型をint型に変換するにはどうすればよいですか?
これは、分数部分に何を起こしたいかによって異なります。あなたはそれを切り落とすする場合
、あなたはキャストすることができます:
float floatValue = 2.7f;
int value = (int)floatValue;
System.out.println(value); // 2
あなたは、それを丸めるなどMath.round(float)
としてJDKのライブラリ内のさまざまな丸め方法を使用したい場合。あなたのコメントを再
float floatValue = 2.7f;
int value = Math.round(floatValue);
System.out.println(value); // 3
:
私はより多くの価値ではなく、丸めた値の逆数を見つけるための方法を探しています。例えば、私は私の値として0.25を持っていた場合は、その後、私は私の出力のために4を受け取りたい、など
逆数は、その後、値を超えるものである場合:
float input = 0.25f;
int recip = (int)(1.0f/input);
System.out.println(recip); // 4
..小数部分を切り捨てる、または
float input = 0.25f;
int recip = Math.round(1.0f/input);
System.out.println(recip); // 4
...それをラウンドします。 (そして、あなたが半分ダウン対半分でも対ハーフアップを制御、対むしろ正の無限大、などよりも、ゼロに向かって丸めを与える他の丸め方法がある)
サイドノート:ありますdouble
ではなく、float
を使用する正当な理由はほとんどありません。そして10進定数、例えば2.0
は、double
sです。 float
が必要な場合は、末尾にf
を付けてください:2.0f
。しかし、もう一度:double
を使用してください。 :-)
整数に10進数を格納することはできません。キャストできますが、データは失われます – ItamarG3
'float recip = 1 /(float)foo;'。または 'float recip = 1F/foo'です。 –
'float recip = 1/foo'はあなたにintの逆数を与えません。' 0'を返します。あなたもそれを試しましたか?そして、これまでに '1/input'を試してみましたか? –