java setscale_java BigDecimal.setScale()的一些问题
环境: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
相关文章
- java跨域访问四种方式_java如何解决跨域问题
- java分布式事务框架_Java分布式事务,及解决方案
- java数组排序去重_JAVA数组去重排序
- java从入门到精通_Java 入门到精通的过程
- eclipse 导入Java项目「建议收藏」
- java 中高级面试题_Java中高级面试题
- java 汉字乱码_Java中文乱码问题
- java官方编译器_JAVA 编译器
- Java(JDK)安装包介绍,常见命令,下载方法,安装方法,新版本没有jre问题,为什么要配置环境变量
- 详解Java中ThreadLocal类型
- 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )
- Java中return返回结果的优先级详解编程语言
- Java问题-java进程占用内存过高,排查原因详解编程语言
- 时间利用Redis设置Java数据的过期时间(redisjava过期)
- 时间解决Java使用Redis设置过期时间的问题(redisjava过期)
- 时间处理解决Java中Redis过期时间的问题(redisjava过期)
- 失效Redis与Java性能失效过期问题研究(redisjava过期)
- 时间设置Redis中Java对象的过期时间(redisjava过期)
- Java调用Redis实现高性能数据存储(java调用redis)
- 时间设置让 Java 程序利用 Redis 来设置数据过期时间(redisjava过期)
- 容器(docker)中运行java需关注的几个小问题
- Java 开发提升Oracle数据库性能(java开发oracle)
- 数据库Java编程修改Oracle数据库的实践(java修改oracle)
- Java程序中使用Redis链接提升效率(redis 链接java)
- java正则表达式应用的实例代码