Java编程运算中如何使数精确到小数点后三位.

publicclassHalo{publicstaticvoidmain(String[]agrs){doublex=6.4,y=3.22;System.out.prin... public class Halo{public static void main(String[] agrs){double x=6.4,y=3.22;System.out.println("x-y="+(x-y));System.out.println("x+y="+(x+y));System.out.println("x*y="+(x * y));}}我编写的程序是这样的, 但x*y 的时候 输出的结果是20.608000000000004 如果使那000000000000000004去掉呢?    展开
 我来答
若以下回答无法解决问题,邀请你更新回答
Sawyer36
推荐于2018-08-18 · 超过12用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:24.9万
展开全部
建议高精度换算的时候使用BigDecimal类型:
特别是刚做银行相关项目的时候,都要在换算的时候讲double的值转换为BigDecimal类型,然后在保存为double类型,因为double在换算时可能会丢失精度。
将double转换为BigDecimal:
double p1 = 0d;
BigDecimal big1 = new BigDecimal(p1);-->再用big1去运算。
将BigDecimal转换为double:
String douStr = df.format(big1);
//先将其转换为String型(避免在将BigDecimal转换为double时丢精度)
double dou = Double.parseDouble(douStr);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随风的鱼儿漂流
推荐于2016-08-03 · TA获得超过617个赞
知道小有建树答主
回答量:123
采纳率:75%
帮助的人:59.7万
展开全部
java中提供了很多方法可以设置浮点数的精确度,我介绍两种方法:DecimalFormat和BigDecimal.
假设你的数为Double value = 1.2365456321;
如果用DecimalFormat,则
DecimalFormat decimalFormat = new DecimalFormat(".000");
value = Double.parseDouble(decimalFormat.format(value));
如果用BigDecimal,则
BigDecimal bigDecimal = new BigDecimal(value);
value = bigDecimal.setScale(3).doubleValue();
如果对数据要求的比较精确的话,推荐用BigDecimal,因为它被开发出来就是为了满足数据精确性的要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
编程世界
2012-02-08 · 超过10用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:24.5万
展开全部
Math.round(x*1000)/1000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
930387901
2012-02-15 · TA获得超过138个赞
知道答主
回答量:72
采纳率:0%
帮助的人:47.3万
展开全部
java API,要多看才行啊,有好多方法,不喜欢API一定要和google大叔搞好关系,常去看看老人家,他有好多的答案告诉你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式