java开发⼩数点保留的⼏种⽅案
第⼀种⽅法
使⽤DecimalFormat类
举个例⼦,假如我们需要保留两位⼩数,我们可以这样写
DecimalFormat df = new DecimalFormat("0.00");
测试如下:
double d = 0.200;
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(d));
输出结果为:
0.20
经测试,不管double d的值为多少,最后结果都是正常的两位⼩数。
同理若是保留⼀位⼩数DecimalFormat df = new DecimalFormat("0.0");其他以此类推
若是这种写法DecimalFormat df = new DecimalFormat("0.00"),不管传⼊的任何值,均保留两位⼩数
还有⼀种写法是这样:
double d = 41.123;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(d));
输出结果为:
41.12
总结:若是这种写法DecimalFormat df = new DecimalFormat("#.##"),则保留⼩数点后⾯不为0的两位⼩数,这种写法不能保证保留2为⼩数,但能保证最后⼀位数不为0;
第⼆种⽅法:
测试:
double d = 0.6544;
String s=String.format("%.2f",d);
System.out.println(s);
bigdecimal除法保留小数输出结果为:
0.65
其中String s=String.format("%.2f",d)表⽰⼩数点后任意两位⼩数,其中2为表⽰两位⼩数,若需要三位⼩数,把2改为3即可,其他同理。总结:这种⽅法不管传⼊的值是多少,均保留两位⼩数,并且符合四舍五⼊的规则。
第三种⽅法:
使⽤BigDecimal类
测试:
double d = 1.000;
BigDecimal bd=new BigDecimal(d);
double d1=bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
输⼊结果:1.0
总结:使⽤这种写法若⼩数点后均为零,则保留⼀位⼩数,并且有四舍五⼊的规则。
以下为Java测试类
import java.math.BigDecimal;
DecimalFormat;
public class Test {
public static void main(String[] args) {
double d = 1.19;
System.out.println(formatDecimal4(d));
}
public static String formatDecimal1(double d) {
DecimalFormat df = new DecimalFormat("0.00");
return df.format(d);
}
public static String formatDecimal2(double d) {
DecimalFormat df = new DecimalFormat("#.##");
return df.format(d);
}
public static String formatDecimal3(double d){
return String.format("%.2f",d);
}
public static double formatDecimal4(double d){
BigDecimal bd=new BigDecimal(d);
double d1=bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); return d1;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论