- - PR -
float1/float2のフォーマット
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-05-22 20:38
こんにちは
float1/float2の除算結果 を小数点1桁(XXX.X)にしたいですが コスト一番少ない方法に一語お願いします。 | ||||
|
投稿日時: 2002-05-22 23:13
10でかけて、intに型変換して、10.0で割ればいいのでは。10.0で割るのが味噌です。二回型変換がありますが、コスト的にはどうなんでしょうね。
float num = ...; float div = (float) ((int)(num*10))/10.0 以下のコードのJavaバイトコードは22行でした。それって早い? (JDK1.4使用時)
| ||||
|
投稿日時: 2002-05-23 12:14
H2さん
こんにちは ご返答有難うございます。 教えて下さった方法で大成功しました。 先に10かけてやるのはちょって思いついたことはありましたが 10.0で割るのは知らなかったので、、、 (ところが、10.00で割ればxxx.xxのようなフォーマットが出るのではないかと思ったら、 駄目でした。) | ||||
|
投稿日時: 2002-05-23 13:04
出力時にフォーマットを指定したいという話はまったく別なのでしっかり区別しましょう。
フォーマットの指定にはjava.text.DecimalFormat。 | ||||
|
投稿日時: 2002-05-23 13:07
f2 = f1 - f1%0.1;
でしょう。 | ||||
|
投稿日時: 2002-05-23 13:52
こんにちは
ご返答ありがとうございます。 へげもん様Wrote: >f2 = f1 - f1%0.1; あーッ、これだ! これだったら f2 = f1 - f1%0.01;にすれば、xxx.xxも得られる筈ですね。 ほんとうに有難うございます。 まりり様Wrote: >出力時にフォーマットを指定したいという話はまったく別なのでしっかり区別しましょう。 >フォーマットの指定にはjava.text.DecimalFormat。 これこそ本命かもしれません、、、 まずはDecimalFormatを勉強します。 またよろしくお願い致します。 | ||||
|
投稿日時: 2002-05-23 20:58
はっ、そんな簡単な方法が! うっ。ちょっと哀しい。 | ||||
|
投稿日時: 2002-05-24 15:45
>まずはDecimalFormatを勉強します。
自分が言ったことですが 読んでみたら、やはり重そうです。 今度は時間コストは大切なので f2 = f1 - f1%0.1;にしました。 | ||||
