- 浏览: 3431406 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
BigDecimal用法http://www.cnblogs.com/linjiqin/p/3413894.html
一、简介
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
二、构造器描述
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
三、方法描述
add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal) BigDecimal对象中的值相除,然后返回这个对象。
toString() 将BigDecimal对象的数值转换成字符串。
doubleValue() 将BigDecimal对象中的值以双精度数返回。
floatValue() 将BigDecimal对象中的值以单精度数返回。
longValue() 将BigDecimal对象中的值以长整数返回。
intValue() 将BigDecimal对象中的值以整数返回。
四、格式化及例子
由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。
以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比。
运行结果如下:
贷款金额: ¥15,000.48
利率: 0.8%
利息: ¥120.00
五、BigDecimal比较
BigDecimal是通过使用compareTo(BigDecimal)来比较的,具体比较情况如下:
打印结果是:-1、0、1,即左边比右边数大,返回1,相等返回0,比右边小返回-1。
注意不能使用equals方法来比较大小。
NumberFormat用法http://blog.csdn.net/pengchua/article/details/1956810
NumberFormat 是所有数值格式的抽象基类。 该类提供了格式化和分析数值的接口。 NumberFormat 也提供了确定
哪个语言环境具有数值格式以及它们名字的方法。
结果为:
23,323.332
¥23,323.33
23,323.332
34%
2,132,323,213.23267
一、简介
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
二、构造器描述
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
三、方法描述
add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal) BigDecimal对象中的值相除,然后返回这个对象。
toString() 将BigDecimal对象的数值转换成字符串。
doubleValue() 将BigDecimal对象中的值以双精度数返回。
floatValue() 将BigDecimal对象中的值以单精度数返回。
longValue() 将BigDecimal对象中的值以长整数返回。
intValue() 将BigDecimal对象中的值以整数返回。
四、格式化及例子
由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。
以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比。
public static void main(String[] args) { NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用 NumberFormat percent = NumberFormat.getPercentInstance(); //建立百分比格式化引用 percent.setMaximumFractionDigits(3); //百分比小数点最多3位 BigDecimal loanAmount = new BigDecimal("15000.48"); //贷款金额 BigDecimal interestRate = new BigDecimal("0.008"); //利率 BigDecimal interest = loanAmount.multiply(interestRate); //相乘 System.out.println("贷款金额:\t" + currency.format(loanAmount)); System.out.println("利率:\t" + percent.format(interestRate)); System.out.println("利息:\t" + currency.format(interest)); }
运行结果如下:
贷款金额: ¥15,000.48
利率: 0.8%
利息: ¥120.00
五、BigDecimal比较
BigDecimal是通过使用compareTo(BigDecimal)来比较的,具体比较情况如下:
public static void main(String[] args) { BigDecimal a = new BigDecimal("1"); BigDecimal b = new BigDecimal("2"); BigDecimal c = new BigDecimal("1"); int result1 = a.compareTo(b); int result2 = a.compareTo(c); int result3 = b.compareTo(a); System.out.println(result1); System.out.println(result2); System.out.println(result3); }
打印结果是:-1、0、1,即左边比右边数大,返回1,相等返回0,比右边小返回-1。
注意不能使用equals方法来比较大小。
NumberFormat用法http://blog.csdn.net/pengchua/article/details/1956810
NumberFormat 是所有数值格式的抽象基类。 该类提供了格式化和分析数值的接口。 NumberFormat 也提供了确定
哪个语言环境具有数值格式以及它们名字的方法。
package com.discursive.jccook.collections; import java.text.NumberFormat; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Double myNumber=23323.3323232323; Double test=0.3434; //getInstance() //返回当前缺省语言环境的缺省数值格式。 String myString = NumberFormat.getInstance().format(myNumber); System.out.println(myString); //getCurrencyInstance()返回当前缺省语言环境的通用格式 myString = NumberFormat.getCurrencyInstance().format(myNumber); System.out.println(myString); //getNumberInstance() 返回当前缺省语言环境的通用数值格式。 myString = NumberFormat.getNumberInstance().format(myNumber); System.out.println(myString); //getPercentInstance() 返回当前缺省语言环境的百分比格式。 myString = NumberFormat.getPercentInstance().format(test); System.out.println(myString); //setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。 //setMaximumIntegerDigits(int) 设置数值的整数部分允许的最大位数。 //setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。 //setMinimumIntegerDigits(int) 设置数值的整数部分允许的最小位数. NumberFormat format = NumberFormat.getInstance(); format.setMinimumFractionDigits( 3 ); format.setMaximumFractionDigits(5); format.setMaximumIntegerDigits( 10 ); format.setMinimumIntegerDigits(0); System.out.println(format.format(2132323213.23266666666)); } }
结果为:
23,323.332
¥23,323.33
23,323.332
34%
2,132,323,213.23267
发表评论
-
Java Comparable和Comparator
2016-06-26 08:52 706http://my.oschina.net/android52 ... -
Java集合框架之fastutil & koloboke
2016-06-23 14:04 2480Java集合框架之fastutil http://rensan ... -
ehcache 分布式支持
2016-06-05 22:26 1104原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2889原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1551http://my.oschina.net/wjme/blog ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3457http://www.guokr.com/blog/47576 ... -
Java集合: Queue和Deque
2016-05-09 09:49 1869Queue http://my.oschina.net/kev ... -
使用gzip优化web应用(filter实现)
2016-05-07 01:45 1034使用gzip优化web应用(filter实现) http:// ... -
Byteman 3.0.5 发布,Java 字节码注入工具
2016-04-23 10:29 1774Byteman 3.0.5 发布,Java 字 ... -
RandomStringUtils的说明和生成随机汉字
2016-04-20 15:21 1406更多参考: http://my.oschina.net/wil ... -
通过IP地址获取地理位置
2016-04-20 15:19 900http://my.oschina.net/githubhty ... -
Java编程中使用正则表达式过滤非数字字符串
2016-04-14 13:51 1726/** * * @param str ... -
非对称加密DH算法,DH代码实现
2016-04-13 11:33 1363RSA算法原理(一)http:// ... -
企业支付宝账号开发接口教程
2016-03-31 14:52 1247企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作- ... -
java double类型数据操作工具类
2016-03-28 17:36 1253http://my.oschina.net/yxwblog/b ... -
double转换到BigDecimal
2016-03-28 17:11 1557BigDecimal b = new BigDecimal(d ... -
Java 生成好看的验证码
2016-03-23 10:52 3370http://www.oschina.net/code/sni ... -
Linux环境安装配置Swftools
2016-03-22 21:01 1112http://tetop.blog.51cto.com/188 ... -
java压缩与解压缩文件
2016-03-20 22:03 1475http://www.oschina.net/code/sni ... -
java图像压缩
2016-03-19 23:20 959http://my.oschina.net/686991/bl ...
相关推荐
BigDecimal 类详解 BigDecimal 类是 Java 中的一种数值类型,主要用于处理...它提供了多种构造器和方法,用于创建和操作 BigDecimal 对象,并且可以与 NumberFormat 类结合使用,用于格式化超过 16 位有效数字的数值。
在使用BigDecimal类时,我们可以使用相应的方法来进行加法减法乘法除法运算: //加法 BigDecimal b1 = new BigDecimal(Double.toString(num)); BigDecimal b2 = new BigDecimal(Double.toString(num)); System.err....
#### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则。 **示例代码**: ```java double...
首先,`BigDecimal`到`String`的最直接转换方式是使用`toString()`方法。这个方法会以标准的十进制格式返回`BigDecimal`对象的字符串表示。例如: ```java BigDecimal bd = new BigDecimal("123.456"); String str ...
Java NumberFormat格式化float类型的bug Java NumberFormat格式化float类型的bug是Java编程中一个常见的错误。...解决这个问题的方法是使用BigDecimal类,而不是使用float或double类型的数字,并将参数传递为字符串。
操作`BigInteger`和`BigDecimal`对象时,不能使用传统的运算符,而是要调用它们提供的方法,比如`add()`, `subtract()`, `multiply()`, 和 `divide()`。例如,执行`a * (b - 1) / c + 1`的计算,你需要写成: ```...
2. **使用`String.format()`方法**: `String.format()`方法可以接受格式化字符串,其中 `%f` 后面的两位`0`表示保留两位小数。 ```java double num = 3.14159; String formattedNum = String.format("%.2f", ...
`NumberFormat`提供了一个静态方法`getPercentInstance()`来获取一个百分比格式化器。 ```java NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2); System.out.println(nf....
这四种方法包括使用DecimalFormat类、String类的format方法、BigDecimal类以及NumberFormat类。 首先,我们来了解DecimalFormat类。DecimalFormat类是Java中的一个格式化类,专门用于格式化十进制数字。通过使用...
为了解决这个问题,我们可以使用以下四种方法来保留浮点数的精度: 方式一:使用 BigDecimal ```java double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_...
此外,如果你需要将字符串转换为整数,可以使用`BigDecimal`的`setScale()`方法结合`ROUND_DOWN`舍入模式,或者直接使用JavaScript自身的`parseInt()`或`parseFloat()`方法。 对于字符串自身拼接的方法,比如使用`...
#### 方式一:使用`BigDecimal`进行四舍五入 `BigDecimal`类提供了精确的浮点数运算能力,非常适合用于需要高精度的场景。通过调用`setScale`方法可以方便地设置小数位数,并指定四舍五入的方式。 ```java double ...
但是,`NumberFormat`类的`getInstance()`方法返回的是本地化的格式化对象,对于需要更灵活的格式化方式,我们可以使用其子类`DecimalFormat`。 `DecimalFormat`类是`NumberFormat`的具体实现,它允许我们自定义...
数据转换可以使用多种方法,例如,使用 NumberFormat 类、使用 DecimalFormat 类、使用 SimpleDateFormat 类等。例如,NumberFormat nf = NumberFormat.getInstance(); String str = nf.format(123.456);。 Java 中...
2. 使用BigDecimal类:通过创建一个BigDecimal对象,然后使用setScale()方法对其进行保留小数位的操作。 double d = 114.145; BigDecimal b = new BigDecimal(d); d = b.setScale(2, BigDecimal.ROUND_HALF_UP)....
此外,计算器还可能使用了`NumberFormat`或`BigDecimal`类来确保精确的数值计算,尤其是在处理浮点数时。`NumberFormat`可以帮助格式化数字输出,而`BigDecimal`可以进行高精度的数学运算,避免浮点数计算中的精度...
本文将详细介绍四种在Java中保留小数的方法,分别是使用`BigDecimal`、`DecimalFormat`、`String.format()`以及`NumberFormat`类。 1. **使用BigDecimal进行四舍五入** `BigDecimal` 类提供了一个精确的浮点数运算...
### 方法一:使用BigDecimal进行四舍五入 `BigDecimal` 类提供了精确的浮点数运算,并且支持自定义舍入模式。以下是一个例子: ```java double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b...
这篇博客可能探讨了如何使用JavaScript原生方法或第三方库来实现这一功能。让我们深入了解一下JavaScript中的日期和数字格式化。 首先,JavaScript提供了一些内置的日期对象方法,如`Date`对象的`toString()`、`...