使用java.math.BigDecimal

原创 2005年05月27日 15:47:00
public class BigDecimal
extends Number

不可变的、任意精度的带符号的十进制数。 一个 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale)。 BigDecimals 提供基本的算术操作、精度处理、比较、格式转换和散列。

BigDecimal 类使它的用户对舍入行为有完全的控制权,迫使用户显式地指定能够舍弃部分精度( (除法 和 setScale))的舍入操作的舍入行为。为达到该目的,该类提供了八个 舍入模式 。同时针对 BigDecimal 的精度操作提供了两种类型的操作:数值调整/舍入 (scaling/rounding)操作和小数点移动操作。Scaling/Rounding 操作 (SetScale) 返回一个 BigDecimal,其数值近似 (或精确) 等于操作数,其有效范围是指定的值;也就是说,它们以对数值产生最小影响的方式增加或减少精度。十进制小数点移动操作 (movePointLeft 和 movePointRight)返回一个 BigDecimal ,它是把操作数的小数点在指定方向移动一个指定距离产生的;这种操作可以改变一个数字的值但不影响它的精度。

public class BigDecimalextends Numberimplements Comparable Immutable, arbitrary-precision signed decimal numbers. A BigDecimal consists of an arbitrary precision integer unscaled value and a non-negative 32-bit integer scale, which represents the number of digits to the right of the decimal point. The number represented by the BigDecimal is (unscaledValue/10scale). BigDecimal provides operations for basic arithmetic, scale manipulation, comparison, hashing, and format conversion. The BigDecimal class gives its user complete control over rounding behavior, forcing the user to explicitly specify a rounding behavior for operations capable of discarding precision (divide(BigDecimal, int), divide(BigDecimal, int, int), and setScale(int, int)). Eight rounding modes are provided for this purpose. Two types of operations are provided for manipulating the scale of a BigDecimal: scaling/rounding operations and decimal point motion operations. Scaling/rounding operations (setScale) return a BigDecimal whose value is approximately (or exactly) equal to that of the operand, but whose scale is the specified value; that is, they increase or decrease the precision of the number with minimal effect on its value. Decimal point motion operations (movePointLeft(int) and movePointRight(int)) return a BigDecimal created from the operand by moving the decimal point a specified distance in the specified direction; that is, they change a number's value without affecting its precision. For the sake of brevity and clarity, pseudo-code is used throughout the descriptions of BigDecimal methods. The pseudo-code expression (i + j) is shorthand for "a BigDecimal whose value is that of the BigDecimal i plus that of the BigDecimal j." The pseudo-code expression (i == j) is shorthand for "true if and only if the BigDecimal i represents the same value as the the BigDecimal j." Other pseudo-code expressions are interpreted similarly. Note: care should be exercised if BigDecimals are to be used as keys in a SortedMap or elements in a SortedSet, as BigDecimal's natural ordering is inconsistent with equals. See Comparable, SortedMap or SortedSet for more information.

java.math.BigDecimal用法

引用自:http://www.cnblogs.com/linjiqin/p/3413894.html 一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效...
  • big1989wmf
  • big1989wmf
  • 2017年04月12日 16:34
  • 570

Java中的java.math.BigDecimal的使用

Java中的java.math.BigDecimal的使用: 1、请看这个例子 package net.nyist; public class BigDecimalDemo { ...
  • ma451152002
  • ma451152002
  • 2013年06月11日 18:45
  • 9233

java.lang.ClassCastException: java.math.BigDecimal错误

java.lang.ClassCastException: java.math.BigDecimal错误 要转换成Int类型的,不能直接转换,要写成 new BigDecimal(obj[2].t...
  • wangjinwei6912
  • wangjinwei6912
  • 2012年02月16日 19:18
  • 2573

关于 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

今天遇到了这个异常,其实是自己经验欠缺所致。我是通过mybatis查询到数据库传过来的主键,是一个32位的char类型。 代码: //查询总账表的该组织总账记录,包括该条记录的主键id、账户余额 ...
  • wdhhxbb
  • wdhhxbb
  • 2017年05月04日 13:39
  • 5286

java.math.BigDecimal cannot be cast to java.lang.String解决方法

从mysql数据库里取decimal(18,2)封装到Map中 BigDecimal b = new BigDecimal(resultMap.get("amount")); b=b.setScal...
  • aqsunkai
  • aqsunkai
  • 2016年05月13日 16:39
  • 2081

java.math.BigDecimal cannot be cast to [Ljava.lang.Object;

从数据库中使用sum函数取出
  • u011972571
  • u011972571
  • 2014年07月16日 10:17
  • 1389

【Java】 java.math.BigDecimal cannot be cast to java.lang.String

今天写代码的时候,遇到了这个错误,大概的意思是,从数据库中取出一个Count函数统计的值,在代码中要转换为String的时候:(String)map.get("onecount");报了如下错误:ja...
  • kisscatforever
  • kisscatforever
  • 2017年10月01日 17:14
  • 323

类型转换错误类似java.math.BigDecimal cannot be cast to java.lang.Double 解决办法

从数据库取出一个 Count函数 统计的值 在代码中要转成Integer类型的时候 Integer.parseInt((String)map.get("ID_"))  报了一下错误: Java.m...
  • justdoit_potato
  • justdoit_potato
  • 2017年07月27日 11:36
  • 1489

ssh框架中 hibernate 的bean中 的java.math.BigDecimal 要改成 integer 或者 long

从oracle数据库中的integer字段通过hibernate的反向工程,生成的bean字段为java.math.BigDecimal类型。 但是struts2框架中的xworks对从jsp页面穿...
  • honghuajun
  • honghuajun
  • 2012年05月27日 20:50
  • 8266

java.math.BigDecimal

可能我之前没有下更多的功夫学java,这个类我是之前不太清楚的,最近在用sybase IQ数据库,通过jdbc返回的是两个bigint数据字段的和,而这个bigint呢跟java中的long是相对...
  • Iamallblue
  • Iamallblue
  • 2015年01月16日 18:26
  • 174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用java.math.BigDecimal
举报原因:
原因补充:

(最多只允许输入30个字)