Java 大十进制中的setscal
我有这个计划:Java 大十进制中的setscal,java,bigdecimal,Java,Bigdecimal,我有这个计划: BigDecimal a = new BigDecimal("0.21556788990002"); System.out.println(a.setScale(2)); 我有结果0.21,但当我只想提取0.2时,我会尝试 对于(int i=1;i您需要使用舍入模式进行缩放,对于您的情况,它将如下所示: System.out.println(a.setScale(1, RoundingMode.FLOOR)); 必须使用重载设置刻度方法,该方法将舍入作为第二个
BigDecimal a = new BigDecimal("0.21556788990002");
System.out.println(a.setScale(2));
我有结果0.21
,但当我只想提取0.2
时,我会尝试
对于(int i=1;i您需要使用舍入模式进行缩放,对于您的情况,它将如下所示:
System.out.println(a.setScale(1, RoundingMode.FLOOR));
必须使用
重载
设置刻度方法,该方法将舍入作为第二个参数。
参考它
顺便说一句,这与
double a = 0.21556788990002;
for (int i = 1; i < 10; i++)
System.out.printf("%." + i + "f%n", a);
我认为您也可以使用十进制格式:
BigDecimal a = new BigDecimal("0.21556788990002");
//change any desired format using 0 or #
DecimalFormat dFormat = new DecimalFormat("0.0");
System.out.println(dFormat.format(a)); //< - print 0.2
DecimalFormat dFormat = new DecimalFormat("#.0");
System.out.println(dFormat.format(a)); //< - print .2
DecimalFormat dFormat = new DecimalFormat("0.00");
System.out.println(dFormat.format(a)); //< - print 0.21
BigDecimal a=新的BigDecimal(“0.21556788990002”);
//使用0或0更改任何所需格式#
DecimalFormat dFormat=新的DecimalFormat(“0.0”);
System.out.println(dFormat.format(a));//<-print 0.2
DecimalFormat dFormat=新的DecimalFormat(#.0”);
System.out.println(dFormat.format(a));//<-print.2
DecimalFormat dFormat=新的DecimalFormat(“0.00”);
System.out.println(dFormat.format(a));//<-print 0.21
0.2
0.22
0.216
0.2156
0.21557
0.215568
0.2155679
0.21556789
0.215567890
BigDecimal a = new BigDecimal("0.21556788990002");
//change any desired format using 0 or #
DecimalFormat dFormat = new DecimalFormat("0.0");
System.out.println(dFormat.format(a)); //< - print 0.2
DecimalFormat dFormat = new DecimalFormat("#.0");
System.out.println(dFormat.format(a)); //< - print .2
DecimalFormat dFormat = new DecimalFormat("0.00");
System.out.println(dFormat.format(a)); //< - print 0.21