2017-07-30 13 views
0

セルフ(ここでnoobの)コーディングを勉強intに、練習問題への答えは次のとおりです。丸めフロートが

c

amount = (int) round (c);

がfloatです。 この行は、丸めによって浮動小数点を整数に変換すると言っても過言ではありませんか? Iは、整数に浮動小数点数に変換する方法を研究しようとしたが、いずれも上記のような構文を使用しません。

+0

デュードは、Javaのプリミティブ型をキャスト学びます。これは非常に基本的なものです。これらの質問をスタックオーバーフローで投稿する前にブラウズしてください。 – Popeye

+0

現時点では私は 'C'だけにしましたが、Java上のものを調べます。ありがとう。 – COBB87

+0

@ COBB87 –

答えて

1

戻り値はroundです。
floatを返すと、intキャスティングの精度が失われず、floatがintに変換されます。それはintを返す場合
、その後、変換機能で発生し、再びそれを変換しようとする必要はありません。

これは実際に番号を丸める場合はもちろんです。 10.811にしたい場合、コードは可能な解決策ですが、10にしたい場合は、intに変換(キャスト)してください。

+0

32ビットの' float'を32ビットの 'int'型にキャストすると、約2 ** 23を超える多くの値に対して精度が失われます。 – chux

0

私はちょうどここamount = int(c)

を行うだろうがそれは10を印刷する必要があります

amount = 10.3495829 
amount = int(amount) 
print(amount) 

完全な例です!

1

floatのほうが整数のプリミティブ値よりも高い範囲です。つまり、floatはintより大きい値です。この事実にあなただけでintにfloat型に変換することができます。これにより、型キャストは、小数点以下のすべてを切り捨てられますことを、

int value = (int) 9.99f; // Will return 9 

ちょうど注意し、それをダウンキャスト、それは上の任意の丸めやフローリングの操作を実行しません値。 あなたが9.999のフロートを持っている場合は、上記の例からわかるように、整数に(ダウン)キャストは9を返します。しかし、あなたはそれが価値だし、それを切り捨てるに0.5を加えることによって、その最も近い整数にfloat型に変換Math.round()メソッドを使用丸めが必要な場合。

Java tutorial , primitive datatypes

Java language specifications, casting of primitive types

+0

um ..質問には「C」とタグ付けされています – bolov