- PR -

float1/float2のフォーマット

投稿者投稿内容
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-05-22 20:38
こんにちは
float1/float2の除算結果
を小数点1桁(XXX.X)にしたいですが
コスト一番少ない方法に一語お願いします。

H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 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使用時)
コード:
float a = (float)8.0;
float b = (float)8.0;
float c = a/b;
c = (float)(((int)(c*10))/10.0);

isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-05-23 12:14
H2さん
こんにちは
ご返答有難うございます。
教えて下さった方法で大成功しました。
先に10かけてやるのはちょって思いついたことはありましたが
10.0で割るのは知らなかったので、、、

(ところが、10.00で割ればxxx.xxのようなフォーマットが出るのではないかと思ったら、
駄目でした。)
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-05-23 13:04
出力時にフォーマットを指定したいという話はまったく別なのでしっかり区別しましょう。
フォーマットの指定にはjava.text.DecimalFormat。
へげもん
ベテラン
会議室デビュー日: 2002/04/14
投稿数: 87
お住まい・勤務地: 埼玉県
投稿日時: 2002-05-23 13:07
f2 = f1 - f1%0.1;
でしょう。
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-05-23 13:52
こんにちは
ご返答ありがとうございます。

へげもん様Wrote:
>f2 = f1 - f1%0.1;
あーッ、これだ!
これだったら
f2 = f1 - f1%0.01;にすれば、xxx.xxも得られる筈ですね。
ほんとうに有難うございます。

まりり様Wrote:
>出力時にフォーマットを指定したいという話はまったく別なのでしっかり区別しましょう。
>フォーマットの指定にはjava.text.DecimalFormat。
これこそ本命かもしれません、、、
まずはDecimalFormatを勉強します。

またよろしくお願い致します。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-05-23 20:58
引用:

へげもんさんの書き込み (2002-05-23 13:07) より:
f2 = f1 - f1%0.1;
でしょう。


はっ、そんな簡単な方法が! うっ。ちょっと哀しい。
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-05-24 15:45
>まずはDecimalFormatを勉強します。
自分が言ったことですが
読んでみたら、やはり重そうです。
今度は時間コストは大切なので
f2 = f1 - f1%0.1;にしました。

スキルアップ/キャリアアップ(JOB@IT)