java浮点型加减乘除精确计算.docx_第1页
java浮点型加减乘除精确计算.docx_第2页
java浮点型加减乘除精确计算.docx_第3页
java浮点型加减乘除精确计算.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问题可以解决:使用BigDecimal并且一定要用String来够造。import java.math.BigDecimal;/*由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精*确的浮点数运算,包括加减乘除和四舍五入。*/public class Arith/默认除法运算精度private static final int DEF_DIV_SCALE = 10;/这个类不能实例化private Arith()/*提供精确的加法运算。* param v1被加数* param v2加数* return两个参数的和*/public static double add(double v1,double v2)BigDecimal b1 = new BigDecimal(Double.toString(v1);BigDecimal b2 = new BigDecimal(Double.toString(v2);return b1.add(b2).doubleValue();/*提供精确的减法运算。* param v1被减数* param v2减数* return两个参数的差*/public static double sub(double v1,double v2)BigDecimal b1 = new BigDecimal(Double.toString(v1);BigDecimal b2 = new BigDecimal(Double.toString(v2);return b1.subtract(b2).doubleValue();/*提供精确的乘法运算。* param v1被乘数* param v2乘数* return两个参数的积*/public static double mul(double v1,double v2)BigDecimal b1 = new BigDecimal(Double.toString(v1);BigDecimal b2 = new BigDecimal(Double.toString(v2);return b1.multiply(b2).doubleValue();/*提供(相对)精确的除法运算,当发生除不尽的情况时,精确到*小数点以后10位,以后的数字四舍五入。* param v1被除数* param v2除数* return两个参数的商*/public static double div(double v1,double v2)return div(v1,v2,DEF_DIV_SCALE);/*提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指*定精度,以后的数字四舍五入。* param v1被除数* param v2除数* param scale表示表示需要精确到小数点以后几位。* return两个参数的商*/public static double div(double v1,double v2,int scale)if(scale0)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(scale0)throw new IllegalArgumentException(The scale must be a positive integer or zero);BigDecimal b = new BigDecimal(Double.toString(v);BigDeci

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论