- 浏览: 58973 次
- 性别:
- 来自: 上海
最新评论
-
hesai_vip:
写的很不错! 果断收藏!
使用Open Flash Chart(OFC)制作图表(Struts2处理) -
EvanWei:
不知道你最后选了哪一个公司,我最近也在应聘Rovi
两个offer:rovi和凯捷中国,不知道如何选择
//表示需要精确到小数点以后几位
public static final int scale = 2;
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double addDouble(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.add(bd2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double subDouble(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.subtract(bd2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mulDouble(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.multiply(bd2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double divDouble(double d1,double d2){
return div(d1,d2,scale);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1,double v2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
发表评论
-
更深入的TOMCAT中文乱码解决之道,包括GET/POST(转)
2011-06-23 10:45 1605在tomcat5中发现了以前处 ... -
一些软件设计的原则
2011-06-20 15:20 908摘录自:http://coolshell.cn/article ... -
Jboss4集群配置
2011-06-08 17:49 35211.前言 2006年,Jboss公司被 ... -
ORACLE索引介绍与高性能SQL优化
2011-06-08 15:52 1023什么是索引 索引是建立在表的一列或多个列上的辅助对象,目 ... -
说说大型高并发高负载网站的系统架构(from tianya)
2011-06-07 15:03 913说说大型高并发高负载 ... -
dao对象不能使用注解@Repository实例化的情形之一
2011-06-03 17:47 15764项目中定义一个dao对象,继承了 JdbcDaoSupport ... -
SQL Server 索引结构及其使用(四)
2011-06-01 23:04 776聚集索引的重要性和如 ... -
SQL Server 索引结构及其使用(三)
2011-06-01 23:04 751实现小数据量和海量数据的通用分页显示存储过程 建立一个 W ... -
SQL Server 索引结构及其使用(二)
2011-06-01 23:03 863改善SQL语句 很多人 ... -
SQL Server 索引结构及其使用1
2011-06-01 22:59 852一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特 ... -
如何使用Spring来管理Struts中的Action
2011-03-25 20:31 774当指定struts.objectFactory为spring时 ... -
eclipse无法启动JBoss5.1.0的解决小办法
2011-03-07 15:00 2024最近看看JBoss,发现早已有了新版本,好久没有关注了,于是下 ... -
log4j配置详解1
2010-12-17 15:15 777>>>>1. 概述Log4j ... -
Java日志系统框架的设计与实现
2010-12-17 11:15 1366在Java 领域,存在大量的日志组件,open-open收录了 ... -
胜负彩10001期欧洲四大博彩公司最新赔率
2010-09-20 13:37 24胜负彩对阵 威廉希尔 Interwetten 立博l ... -
明明白白Unsupported major.minor version 49.0的错误
2010-08-05 14:33 518转载自:http://www.blogjava.net/Unm ... -
一位系统分析师的工作经验总结
2010-07-20 15:39 1553谈到项目的需求分析,几乎每个软件开发人员 ... -
Tomcat6的结构
2010-05-17 17:28 1655本文分为三部分,分别为: Tomcat文件系统 Tom ... -
tomcat生命周期管理 LifeCycle
2010-05-17 15:12 1003Servlet规范中定义了一个Servlet的生命周期, To ... -
计算机端口管理
2010-05-12 11:03 923在运行中输入cmd,进入命令行,然后输入netstat -an ...
相关推荐
它可以处理非常大的数字以及需要精确计算的场景,例如财务计算中常见的货币值。 ### 1.2 BigDecimal的主要用途 - **金融计算**:由于货币计算通常需要非常高的精度,BigDecimal非常适合这类应用场景。 - **科学...
在Java中,`BigDecimal` 类提供了对超过16位有效数字的十进制数进行精确算术运算的能力。它适用于金融计算、科学计算等场景,在这些场景中,使用浮点数(如 `float` 和 `double`)可能会因为精度丢失而导致错误的...
这篇博客将深入探讨`BigDecimal`的使用,以及如何通过它来实现精确计算。 `BigDecimal`是Java `java.math`包下的一个类,它提供了任意精度的有符号十进制数。其设计目标是支持任意精度的算术运算,确保结果的精确性...
在进行高精度计算时,BigDecimal 避免了浮点数计算的精度问题,提供了更精确的结果。需要注意的是,所有涉及到 BigDecimal 的运算都会创建新的对象,所以频繁操作可能会带来性能影响。为了优化性能,可以使用 `...
由于浮点数(如`float`和`double`)在计算机中是以近似值存储的,这可能导致计算结果的不精确性,尤其是在进行货币计算时。`BigDecimal`解决了这个问题,提供了精确的十进制运算。 `BigDecimal`对象由一个非空的十...
1. **构造方法**: 在构造 `BigDecimal` 对象时,推荐使用 `Double.toString()` 来转换 `double` 类型的值,因为直接传递 `double` 值可能会导致意外的结果。 2. **舍入模式**: `BigDecimal.ROUND_HALF_UP` 表示四...
精确计算Double型数据,可用于货币计算
标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...
BigDecimal工具类提供了多种精确的数学运算方法,满足了我们在实际开发中对高精确计算的需求。同时,该工具类还提供了很多实用的方法,使得我们可以更方便地进行数学运算。 知识点: 1. BigDecimal工具类是Java中...
Android 精确计算工具类。 /** * @Title: Arith.java * @Package com.uxun.pay.util * @Description: TODO(用一句话描述该文件做什么) * @author daiw * @date 2016-1-5 上午9:05:34 * @version V1.0 */ ...
2. 创建 BigDecimal 对象:可以通过多种方式创建 BigDecimal 对象,例如将 double 或 String 类型的数值转换为 BigDecimal 对象。 3. 精确的加法运算:使用 BigDecimal 的 add 方法可以进行精确的加法运算,例如将...
float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的...
BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.add(bd2).doubleValue(); } public double sub(double d1, double d2) { ...
BigDecimal是Java中用于进行高精度、精确浮点数运算的类,它解决了浮点数在二进制表示下无法精确表示所有十进制数的问题。...在不需要精确计算的场合,仍然推荐使用float和double以获取更好的性能。
总结一下,Java中的浮点数精确计算主要是通过`java.math.BigDecimal`类来实现的,而"Java实现的浮点类的精确计算"则可能是一个自定义工具类,封装了`BigDecimal`的操作,以提供方便、准确的浮点数计算服务。...
#### 使用BigDecimal进行精确计算 为了提高精度并避免浮点数运算的误差问题,我们可以使用`BigDecimal`类来替代简单的浮点数运算。为此,我们创建了一个辅助类`ArithUtil`,用于实现基本的算术操作。 ```java ...
### Java中实现浮点数的精确计算 在Java编程中,使用`float`和`double`类型进行浮点数计算时经常会遇到精度丢失的问题。这是因为浮点数在计算机内部是以二进制形式存储的,而某些十进制小数无法用二进制精确表示,...
在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文将深入探讨BigDecimal的基本操作、应用场景及注意事项。 首先,创建...
由于 double 和 float 类型在处理大数或需要绝对精确计算的场景下存在精度损失,因此 BigDecimal 成为了商业计算和金融计算的标准工具。 在使用 BigDecimal 时,我们需要通过构造函数来创建对象,通常我们会传入一...
Java中的`BigDecimal`类是用来表示任意精度的十进制数,尤其适合于需要精确计算的商业和财务场景。它的核心概念包括非标度值(unscaled value)和标度(scale),非标度值是一个任意精度的整数,标度则是小数点后的...