私は数学をする必要があります。基本的にユーザー入力の数値を64で割って64で乗算しますが、正しく機能するには、乗算する前に小数点を完全に取り除く必要があります。Cの小数点をすべて削除する
例:
150 is entered
150/64 = 2.34375 (need it to just be 2)
2 * 64 = 128
output = 128
私は数学をする必要があります。基本的にユーザー入力の数値を64で割って64で乗算しますが、正しく機能するには、乗算する前に小数点を完全に取り除く必要があります。Cの小数点をすべて削除する
例:
150 is entered
150/64 = 2.34375 (need it to just be 2)
2 * 64 = 128
output = 128
単純にこれを行います。
floor(z/64)*64
[正z
WRTオペの要件のために完璧に動作]
Meik VTUNEが、私は明らかに同じことは、単にint
鋳造を用いて観察することができ、これを追加する必要が述べたように。(値がintの範囲内にある場合にのみ、 )これは、負の数が使用されるときより好ましい。
数値が大きすぎて分割結果がint
に格納されない場合はfloorを使用してください。
-5.6
のような負の数の場合、-5
が必要です。だから、結果はint型に収まらない二重で、変数zのため
..
if(z<0) z=-(floor(-z));
なぜdownvote? ... – coderredoc
'int 'を使うと、関数を使わずに同じことができます。 –
@MeikVtune .:それははるかに明確です。ありがとう。 – coderredoc
あなたが入力変数は限り短く定義した場合、intまたは長いあなたがのための唯一の整数部分を取得します無料です。
int input = 150;
int output = (input/64) * 64;
// Now output = 128.
整数除算を行います。 '150/64 = 2'、次いで '2 * 64 = 128'である。 –
変数宣言が見えるようにコードを投稿してください。 –
値を丸めたり、切り捨てたりしますか?そして、それを出力のためだけに、あるいは内部計算のためだけに望みますか? –