0

こんにちは皆さん、比率の結果を計算して表示するのに助けが必要です。

だからここに私が取り組んでいるサンプルコードがあります:

    double a = 11;
    double b = 2508;
    double total1;
    double total2;

    total1 = a / b;

    System.out.println(total1);

今私が得る結果は 0.0043859649122807015 です。ただし、小数点以下 3 桁の "0.004" だけが必要です。比率を計算するには、"0.004" を 1 に丸める必要があります。

フェーズ2

    double a = 11;
    double b = 2508;
    double total1;
    double total2;

    total1 = a / b;

    System.out.println(total1);

    total2 = 1/total1; //1 is equal a rounded 0.004 then devided by 0.004

    System.out.println(total2);

しかし、計算を行うには手動で 1 を入れなければなりませんでした。最初の計算から合計 1 を格納する方法はありますか? 合計 1 = a/b; . したがって、"total2 = "A rounded 1 of 0.004"/total1; を実行するためにコールバックできます。

最後に結果を出力すると 250 です。

リトルフォーミュラ

11/2508 = 0.004

0.004 = 1 

1/0.004= 250

1:250

j2me で decimalformat を使用しようとしましたが、サポートされていません

4

2 に答える 2

1

ナンバーフォーマッターが必要です

http://docs.oracle.com/javase/tutorial/java/data/numberformat.html

System.out.format("%.3f%n", pi);     // -->  "3.142"

また、数式を反転するだけです。

2508/11 = 228

つまり、1:228よりも正確です。

于 2012-12-18T14:15:18.080 に答える
1

と を使用する必要がMath.round()ありMath.log10()ます。

log10は小数点の位置を決定し、log10=0forを持ち1ます。

したがって、最初に小数点位置を計算します。

Math.log10(total1);

これは与えるでしょう

-2.357934847000454

それを丸めMath.round()ます

-2

これは、計算で使用する数値です。

最終的なコードは

    double a = 11;
    double b = 2508;
    double total1;
    double total2;

    total1 = a / b;

    System.out.println(total1);

    // determining point location
    long l = Math.round(Math.log10(total1));

    System.out.println(l);

    // moving point right
    total1 = total1 * Math.pow(10, -l+1);

    System.out.println(total1);

    // rounding
    total1 = Math.round(total1);

    System.out.println(total1);

    // moving point back
    total1 = total1 / Math.pow(10, -l+1);

    System.out.println(total1);

    total2 = 1/total1; //1 is equal a rounded 0.004 then devided by 0.004

    System.out.println(total2);

PS

また、これから何かを学ぶことができます:フロートを人間が読める分数に変換する方法は?

于 2012-12-18T14:23:54.447 に答える