前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java setscale_java BigDecimal.setScale()的一些问题

java setscale_java BigDecimal.setScale()的一些问题

作者头像
全栈程序员站长
发布2022-11-01 15:27:38
1760
发布2022-11-01 15:27:38
举报
文章被收录于专栏:全栈程序员必看

环境:Eclipse 3.6 jdk:1.6

程序:

package com.test.doubletest;

import java.math.BigDecimal;

public class DoubleDataType {

/**

* @param args

*/

public static void main(String[] args) {

Double d_0 = new Double(0.00929505412378221);

Double d_1 = new Double(0.00909505412378221);

Double d_2 = new Double(0.00919505412378221);

Double d_3 = new Double(0.00939505412378221);

Double d_4 = new Double(0.00949505412378221);

Double d_5 = new Double(0.00959505412378221);

Double d_6 = new Double(0.00969505412378221);

Double d_7 = new Double(0.00979505412378221);

Double d_8 = new Double(0.00989505412378221);

Double d_9 = new Double(0.00999505412378221);

BigDecimal re_0 = new BigDecimal(d_0.doubleValue());

BigDecimal re_1 = new BigDecimal(d_1.doubleValue());

BigDecimal re_2 = new BigDecimal(d_2.doubleValue());

BigDecimal re_3 = new BigDecimal(d_3.doubleValue());

BigDecimal re_4 = new BigDecimal(d_4.doubleValue());

BigDecimal re_5 = new BigDecimal(d_5.doubleValue());

BigDecimal re_6 = new BigDecimal(d_6.doubleValue());

BigDecimal re_7 = new BigDecimal(d_7.doubleValue());

BigDecimal re_8 = new BigDecimal(d_8.doubleValue());

BigDecimal re_9 = new BigDecimal(d_9.doubleValue());

System.out.println(re_0.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_1.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_2.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_3.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_4.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_5.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_6.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_7.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_8.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

System.out.println(re_9.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()*100);

}

}

输出结果:

0.9299999999999999

0.91

0.9199999999999999

0.9400000000000001

0.95

0.96

0.97

0.98

0.9900000000000001

1.0

出现此问题是什么情况?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179804.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档