java中解决double类型精度丢失问题(BigDecimal)-创新互联
BigDecimal类
网站名称:java中解决double类型精度丢失问题(BigDecimal)-创新互联
文章出自:http://hbruida.cn/article/cogedi.html
对于不需要准确计算精度的数字可以直接使用float或double,但如果要精确计算结果,就必须使用BigDecimal类
为新晃等地区用户提供了全套网页设计制作服务,及新晃网站建设行业解决方案。主营业务为成都做网站、网站建设、新晃网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!public BigDecimal(double val) 将double表现形式转换为BigDecimal
public BigDecimal(int val) 将int表现形式转换成BigDecimal
public BigDecimal(String val) 将String表现形式转换成BigDecima
例:计算一个长方形的边长,每段解释在代码段
import java.math.BigDecimal;
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
//调用perimeter类
double z = perimeter();
//输出z的值,发现精度丢失问题解决
System.out.println(z);
}
public static double perimeter() {
//Scanner 用户输入
Scanner sc = new Scanner(System.in);
//输入一个double类型数值给x,y
double x = sc.nextDouble();
double y = sc.nextDouble();
//把输入的x,y值(长、宽)转成字符串类型给到b1,b2
BigDecimal b1= new BigDecimal(String.valueOf(x));
BigDecimal b2= new BigDecimal(String.valueOf(y));
BigDecimal b3= new BigDecimal("2.0");
//返回b1+b2再乘b3的值
return b1.add(b2).multiply(b3).doubleValue();
}
}
随机输入两个数 如 10.1 10.2
计算结果 z = 40.6
String.valueOf() ->基本数据类型转换为字符串形式表现
b1.add(b2).doubleValue();
//加法
b1.subtract(b2).doubleValue();
//减法
b1.multiply(b2).doubleValue();
//乘法
b1.divide(b2).doubleValue();
//除法
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站名称:java中解决double类型精度丢失问题(BigDecimal)-创新互联
文章出自:http://hbruida.cn/article/cogedi.html