社区
Java SE
帖子详情
BigDecimal数据乘0后的数据为什么是以科学计数法的形式显示?急求解
蜗牛@路上
2013-04-11 06:01:39
public static void main(String[] args) {
BigDecimal bd = new BigDecimal(0.0001);
BigDecimal bd1 = new BigDecimal(0);
System.out.println(bd.multiply(bd1));
}
显示是结果:0E-66
...全文
543
1
打赏
收藏
BigDecimal数据乘0后的数据为什么是以科学计数法的形式显示?急求解
public static void main(String[] args) { BigDecimal bd = new BigDecimal(0.0001); BigDecimal bd1 = new BigDecimal(0); System.out.println(bd.multiply(bd1)); } 显示是结果:0E-66
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kiyoki
2013-04-12
打赏
举报
回复
因为0.0001用66位表示
Java高精度类型处理及double类型不以
科学计数法
显示
方法
Java高精度类型处理 1.高精度整数BigInteger BigInteger可以表示任意大小的整数,并且可以像我们使用int之类的数字一样正常的进行计算。只不过加减乘除之类的操作都换成了方法调用,要注意的是BigXXXXX是不可变的,也就是说每次进行运算都会产生新的对象来进行计算,所以应该避免大规模的使用 **常用方法** String temp1 = "-1000000000000000000000000000000000000"; BigInteger bg1 = ne
java向上取整去掉末尾的0_
BigDecimal
去除末尾多余的0
Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0
BigDecimal
num = new
BigDecimal
("100.000");
BigDecimal
numNoEndZero = num.stripTrailingZeros(); //numNoEndZero :1E+2 System.out.println(numNoEndZero.toString...
开发易忽视的问题:
BigDecimal
底层原理分析
精度与控制
BigDecimal
提供了高精度和舍入控制,而double则依赖硬件的自动舍入机制。性能double由于硬件支持,运算速度远高于
BigDecimal
,但容易产生精度误差。灵活性与复杂性
BigDecimal
更复杂,提供更大范围的数值和精度控制;double简单且固定,更易于使用。
Java
数据
结构与算法综述
插入排序:简单直观的排序方法,通过构建有序序列,对于未排序
数据
,在已排序序列中从后向前扫描,找到相应位置并插入。例如,在网络中分配带宽,使总的流量最大。优先队列:一种特殊的队列,其中每个元素都有一个优先级,优先级最高的元素最先出队。归并排序:基于分治思想的排序算法,将已有序的子序列合并,最终得到完全有序的序列。无向图:图中的边没有方向,表示两个节点之间的关系是对称的。适用于需要动态维护集合的场景,如连通性检测、图的划分等。哈希集合:一种基于哈希表的集合
数据
结构,支持快速的插入和查找操作,不允许重复元素。
浮点数运算不准确怎么办?
浮点数是一种用于表示实数的计算机编码系统,它可以表示非常大或非常小的数值。它基于
科学计数法
,将一个数表示为尾数和指数的乘积。在计算机中,浮点数使用二进制
科学计数法
表示。由于计算机的存储空间有限,浮点数只能近似地表示实数,因此在进行浮点数运算时,可能会出现精度问题。浮点数精度问题主要源于计算机使用有限的位数来表示实数。由于这种限制,许多实数在计算机中只能被近似表示,这就可能导致精度损失。例如,1/3在十进制中是一个无限循环小数,无法精确表示。在二进制中,类似的问题也存在,例如0.1无法被精确表示。
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章