1。コード:
Import java.math.bigdecimal; import java.text.decimalformat; Import java.text.numberformat; public class Format {double f = 111231.5585; public void m1(){bigdecimal bg = new bigdecimal(f); double f1 = bg.setscale(2、bigdecimal.round_half_up).doublevalue(); System.out.println(f1); } / *** DecimalFormatの最も便利な変換* / public void m2(){decimalformat df = new Decimalformat( "#。00"); System.out.println(df.format(f)); } / *** string.formatの最も簡単な印刷* / public void m3(){system.out.println(string.format( "%。2f"、f)); } public void m4(){numberformat nf = numberformat.getNumberInstance(); nf.setmaximumfractiondigits(2); system.out.println(nf.format(f)); } public static void main(string [] args){format f = new Format(); f.m1(); f.m2(); f.m3(); f.m4(); }}2。出力の結果:
111231.56
111231.56
111231.56
111,231.56
ここでは、追加、減算、乗算、分割、浮動小数点数の丸めなどの動作方法を定義するツールクラスを提供します。参照用。
ソースファイルmathextend.java:
import java.math.bigdecimal; public class mathextend {//デフォルトディビジョン操作精度プライベート静的int default_div_scale = 10; /***正確な追加操作を提供します。 * @param v1 * @param v2 * @return 2つのパラメーターの合計 */ public static double add(double v1、double v2){bigdecimal b1 = new bigdecimal(double.tostring(v1)); BigDecimal B2 = new BigDecimal(double.Tostring(v2)); return b1.add(b2).doublevalue(); } / ** *正確な追加操作を提供 * @param v1 * @param v2 * @return 2つのパラメーターの数学的合計は、文字列形式で戻ります * / public static string add(string v1、string v2){bigdecimal b1 = new bigdecimal(v1); BigDecimal B2 = new BigDecimal(V2); return b1.add(b2).tostring(); } /***正確な減算操作を提供します。 * @param v1 * @param v2 * @return 2つのパラメーター間の違い */ public static double double(double v1、double v2){bigdecimal b1 = new bigdecimal(double.tostring(v1)); BigDecimal B2 = new BigDecimal(double.Tostring(v2)); b1.subtract(b2).doublevalue()を返します。 } / ** *正確な減算操作を提供 * @param v1 * @param v2 * @ @return 2つのパラメーターの数学的違い、文字列形式のリターン * / public static string suppract(string v1、string v2){bigdecimal b1 = new bigdecimal(v1); BigDecimal B2 = new BigDecimal(V2); b1.subtract(b2).tostring()を返します。 } /***正確な乗算操作を提供します。 * @Param V1 * @Param V2 * @Return 2つのパラメーターの製品 */ public Static Double Multiply(double v1、double v2){bigdecimal b1 = new bigdecimal(double.tostring(v1)); BigDecimal B2 = new BigDecimal(double.Tostring(v2)); b1.multiply(b2).doublevalue()を返します。 } / ** *正確な乗算操作を提供 * @param v1 * @param v2 * @ @return 2つのパラメーターの数学的製品、文字列形式のリターン * / public static string multiply(string v1、string v2){bigdecimal b1 = new bigdecimal(v1); BigDecimal B2 = new BigDecimal(V2); return b1.multiply(b2).toString(); } /***正確な分割操作を(比較的)提供します。分割の状況がない場合、小数点後に * 10桁まで正確であり、後続の数値が丸くなり、丸めモードはround_half_even * @param v1 * @param v2 * @return 2つのパラメーター */ public static double vidive(double v1、double v2); } /***正確な分割操作を(比較的)提供します。状況を完了する終わりがない場合、スケールパラメーターは *の精度を指し、その後の数値は丸みを帯びています。丸めモードでは、round_half_even * @param v1 * @param v2 * @paramスケールを使用して、いくつかの小数点に正確である必要があることを示します。 * 2つのパラメーターの@return商*/ public static double divide(double v1、double v2、int scale){return divide(v1、v2、scale、bigdecimal.round_half_even); } /***正確な分割操作を(比較的)提供します。状況を完了する終わりがない場合、スケールパラメーターは *の精度を指し、その後の数値は丸みを帯びています。丸めモードでは、ユーザー指定のラウンドモードを使用します* @Param V1* @Param V2* @Param Scaleは、小数点の後に数桁に正確にする必要があることを意味します* @param Round_modeはユーザー指定の丸めモード* 2つのパラメーターの引数*/ public static double divivity(double v1、double v2、int Round_mode <0) IllegalargumentException( "スケールは正の整数またはゼロでなければなりません"); } bigdecimal b1 = new bigdecimal(double.tostring(v1)); BigDecimal B2 = new BigDecimal(double.Tostring(v2)); b1.divide(b2、scale、round_mode).doublevalue(); } / ** *は(比較的)正確な分割操作を提供します。無限の分割がある場合、小数点後に * 10桁まで正確であり、後続の数字は丸みを帯びており、丸めモードはround_param V1 * @param v2 * @returnを使用します。 divide(v1、v2、default_div_scale); } /***正確な分割操作を(比較的)提供します。状況を完了する終わりがない場合、スケールパラメーターは *の精度を指し、その後の数値は丸みを帯びています。丸めモードはround_half_even * @param v1 * @param v2 * @paramスケールは、小数点に正確である必要がある2つのパラメーターの商を表します * @ @returning */ public string divide(string v1、string v2、 bigdecimal.round_half_even); } /***正確な分割操作を(比較的)提供します。状況を完了する終わりがない場合、スケールパラメーターは *の精度を指し、その後の数値は丸みを帯びています。丸めモードでは、ユーザー指定の丸めモード * @param V1 * @param v2 * @paramスケールは、小数点以降の桁数が小数点に正確である必要があることを意味します * @param ound_modeはユーザー指定の丸めモードを意味します * @ @return 2つのパラメーターの商は弦楽if(scale <0){新しいIllegalargumentException( "スケールは正の整数またはゼロでなければならない"); } bigdecimal b1 = new bigdecimal(v1); BigDecimal B2 = new BigDecimal(V2); return b1.divide(b2、scale、round_mode).toString(); } / ***小数点以下の正確な丸めを提供し、丸めモードではround_half_even* @param vの数字を使用します* @paramスケール@paramスケール小数点以下の数桁の数字* @return resturn resturn sults* / public static double rounds(double v、int scale){return round(v、vigdecimal.round_half_even); } / ** *小数点以下の正確な丸めを提供 * @param v丸めが必要な番号 * @paramスケール小数点の後に保持される数字の数 * @param ound_mode指定された丸めモード * @return結果 * / public staticダブルラウンド(ダブルV、intスケール、intラウンド_mode)またはzero "); } bigdecimal b = new bigdecimal(double.tostring(v)); return b.setscale(scale、round_mode).doublevalue(); } / ** *小数点以下の正確な丸めを提供します。丸めモードでは、round_half_even * @param vの数字を使用します。 } / *** 10進数の正確な丸め* @param v丸みを帯びている必要がある* @paramスケール@paramスケール10進数の後に保持される数桁* @param ound_mode指定された丸め* @return丸めは文字列形式で返されます* / public static string ound(int and_mode、int lound_mode(int scale v){saled <0)正の整数またはゼロでなければなりません "); } bigdecimal b = new bigdecimal(v); return b.setscale(scale、round_mode).toString(); }}