zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVA 问题 一些 bigdecimal setScale
2023-06-13 09:14:24 时间

环境: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