2012-03-09 4 views
0

検索はいくつか行っています。私が探していることを行う方法を決定することはできません。Javaメソッドは、パラメタに基づいて文字を出力する回数を決定します。

数値を四捨五入するようにハードコードされている数値の丸め方法がありますが、私はそれを動的にする必要があります。したがって、それがラウンド(3.1415926536、3)で呼び出された場合、4ではなく小数点以下3桁に丸められますが、Javaを3にして、000を印刷または処理したいと思う方法を理解できません。

これを行う方法に関するアイデアはありますか?以下は、私が入力したサンプルコードがあるが、それは難しい私は右

public class round 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("pi rounded to 3 places is " + roundPI(3.1415926536, 3)); 
    } 
    public static double roundPI(double numberToRound, int decimalPlaces) 
    { 

    numberToRound= (double)Math.round(numberToRound*10000)/10000; 
    return numberToRound; 
    } 
} 

電流出力を3桁に丸め

パイをコンパイルうとしていた何も以来4ヶ所にコード化された3.1416

です

私は3に丸めることになる1000年に取得する* 100 10のようないくつかの種類の数学関数でこれを行うと考えられますが、私は4または5小数点以下の桁数を必要としたり、2ならば、私はまだそれを取得する方法を見つけ出す必要がありますそれが何によって倍増する必要があるかを理解するint命令をハードコーディングして、何らかの理由で計算機を好きに丸めたり、ユーザが小数点以下1桁のように10または12またはそれ以上に丸めたいと思った場合、処理するマイルを処理します。

答えて

1
powerOfTen = Math.pow(10,decimalPlaces); 
numberToRound = (double)Math.round(numberToRound * powerOfTen)/powerOfTen; 

これは、正しい数の位に丸めます。しかし、印刷するときに、適切な数の末尾のゼロが印刷されるようにする必要もあります。そのためにはSystem.out.printfを使用できます。

+0

少なくとも、小数点以下を使い果たすまで、完全に動作します。私が丸で持っていた10を過ぎてテストされた(Math.PI、12) –

関連する問題