`
zzc_zj
  • 浏览: 14990 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java中小数的处理

    博客分类:
  • j2ee
阅读更多

java中小数的处理
public   class   Arith   {  
   
          private   static   final   int   DEF_DIV_SCALE   =   10;  
   
          private   Arith()   {  
   
          }  
   
          /**  
            *   提供精確的加法運算  
            *   @param   args  
            */  
          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   args  
            */  
          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   args  
            */  
          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();  
          }  
           
          /**  
            *   提供了(相對)精確的除法運算,當發生除不儘的情況時,精確到  
            *   小數點以後110位  
            *   @param   args  
            */  
          public   static   double   div(double   v1,   double   v2)   {  
                  return   div(v1,   v2,   DEF_DIV_SCALE);  
          }  
           
          /**  
            *   提供了(相對)精確的除法運算,當發生除不儘的情況時,由scale參數指定  
            *   精度,以後的數字四捨五入  
            *   @param   args  
            */  
          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   args  
            */  
           
          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_DOWN).doubleValue();  
          }  
   
          public   static   void   main(String[]   args)   {  
                  System.out.println(add(1.2321231,   3.7865765));  
                  System.out.println(sub(6.4523423,   1.2321231));  
                  System.out.println(mul(6.4523423,   3.7865765));  
                  System.out.println(div(6.4523423,   3.7865765,   5));  
                  System.out.println(round(3.7865765,   5));  
          }  
  }
分享到:
评论

相关推荐

    java实现小数、百分数值处理组件

    首先,我们要理解小数处理的基本概念。在Java中,小数通常由`float`和`double`类型来表示。`float`占据4字节,精度约为7位小数;`double`占据8字节,精度约为15-16位小数。处理小数时,我们可能会遇到舍入问题,这时...

    java小数处理工具类

    java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...

    Java中限制小数位数问题

    ### Java中限制小数位数问题 在Java编程中,我们经常会遇到需要处理浮点数的情况,特别是当涉及到金融计算、科学计算等对精度有较高要求的领域时,如何有效地控制小数点后保留的位数显得尤为重要。本文将详细介绍在...

    Java与MySQL中小数保存问题解析.pptx.pptx

    在Java和MySQL中,处理小数时需要注意一系列与精度、数据类型选择以及运算准确性相关的问题。首先,让我们深入了解Java中小数的保存方式。 Java提供了两种基本的小数数据类型:float和double。float占用4个字节,...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    Java保留两位小数方法大全

    综上所述,Java中保留两位小数的方法有很多种,选择哪种取决于具体的应用场景和需求。对于需要高精度计算的情况,推荐使用`BigDecimal`;而对于简单展示数据的需求,则可以选择`DecimalFormat`或`String.format`等...

    java 寻找最小数

    在Java编程语言中,寻找数组中的最小数是一项基础但重要的任务,这通常涉及到对数组元素进行比较。在本文中,我们将深入探讨如何在Java中找到一个整数数组中的最小值,以及这个过程中的关键知识点。 首先,让我们...

    java保留两位小数问题

    在Java编程中,处理数值型数据时,经常会遇到需要对数字进行格式化的需求,尤其是对于浮点数的操作。本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四...

    java(小数点,百分号处理)

    ### Java中的小数点与百分号处理技巧 在Java编程中,经常需要处理数值的格式化显示问题,尤其是在涉及财务、统计分析等场景时。本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat...

    JAVA案例 第二篇:针对大数值取整数和小数、保留几位小数、特定位数的数值、自幂数.docx

    在JAVA编程中,处理数值运算是一项常见的任务,尤其是在涉及到大数值的时候。本篇文章将深入探讨如何在不涉及精度处理和不使用强制类型转换的情况下,进行取整、取小数、保留特定位数的小数以及计算自幂数的操作。...

    java保留小数的四种实现方法

    Java编程语言中,保留小数是一项常见的操作,特别是在处理金融数据或者进行数学计算时。本文将详细介绍四种在Java中保留小数的方法,分别是使用`BigDecimal`、`DecimalFormat`、`String.format()`以及`NumberFormat`...

    JAVA_API1.6文档(中文)

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    基于Java的简易计算器能够完成整数和小数的运算

    本项目利用Java语言实现了一个功能,包括整数和小数的加减乘除等基本运算,并且采用了策略模式来设计代码,使其更加灵活和可扩展。 首先,我们要了解什么是Java。Java是一种广泛使用的高级编程语言,以其“一次编写...

    Java中对日期的常用处理(转)

    本文将基于标题“Java中对日期的常用处理(转)”来深入探讨Java中的日期处理,结合`DateUtil.java`这个文件名,我们可以推测这是一个包含日期处理工具类的源代码文件。 首先,Java中处理日期的最基础类是`java....

    Java小数精度、时间格式和类型转换.doc

    Java 中的类型转换是非常重要的,特别是在处理小数和日期时。在 Java 中,存在多种类型的转换,包括基本类型的转换、包装类型的转换、字符串类型的转换等。 首先,让我们来看一下 Java 中的基本类型转换。在 Java ...

    java 中文转数字

    在Java编程语言中,中文转数字是一个常见的需求,特别是在处理汉字数字表示的场合,比如中文日期、货币或者传统文化中的数字表达。中文数字的转换涉及到字符识别、数字映射以及字符串处理等多个方面。以下是对这个...

    浅谈Java中的高精度整数和高精度小数

    Java 中的高精度整数和高精度小数是指在 Java 编程语言中对大整数和小数的处理。高精度整数和高精度小数在实际应用中非常重要,例如在计算金钱的时候需要保留高精度小数,以避免计算误差。 高精度整数: 在 Java ...

    保留2位小数

    对于`float`类型的数据,虽然在Java中`float`精度较低,但处理方式与`double`类似,只需要将`double`替换为`float`即可。在提供的`Float.java`文件中,可能包含了使用`DecimalFormat`处理`float`类型数值的示例代码...

    sqlserver数据库类型对应Java中的数据类型

    SQL Server 数据库类型对应 Java 中的数据类型 SQL Server 是一个关系数据库管理系统,Java 是一个...了解 SQL Server 数据库类型对应 Java 中的数据类型是非常重要的,这样可以确保在 Java 中正确地处理数据库操作。

    Java小数点的问题1

    Java中的浮点数处理涉及到两种主要的非整数类型:`float`和`double`,它们遵循IEEE 754标准。这个标准定义了32位的浮点数(单精度,对应`float`)和64位的双精度浮点数(对应`double`)。这两种类型都有包装类,分别...

Global site tag (gtag.js) - Google Analytics