BigDecimal.setScale 处理java小数点位数 (BigDecimal、精度、位数)
标签: java bigdecimal 精度 小数点位数 分类: java
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
注释:
1:scale指的是你小数点后的位数。比如123.456则score就是3.
score()就是BigDecimal类中的方法啊。
比如:BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3.
2:
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!
4:对于一般add、subtract、multiply方法的小数位格式化如下:
BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("mData=" + mData);
----结果:----- mData=9.66
标签: java bigdecimal 精度 小数点位数 分类: java
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
注释:
1:scale指的是你小数点后的位数。比如123.456则score就是3.
score()就是BigDecimal类中的方法啊。
比如:BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3.
2:
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!
4:对于一般add、subtract、multiply方法的小数位格式化如下:
BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("mData=" + mData);
----结果:----- mData=9.66
发表评论
-
Java身份证验证方法
2015-11-25 11:14 630Java身份证验证方法 package com.tg.user ... -
java 中文乱码问题
2015-06-30 22:19 480JAVA之编码---->CSV在文 ... -
java如何将错误的堆栈信息写入日志
2015-04-13 15:03 1233最近在写代码的时候,在写日志的时候用e.getMessage( ... -
JAVA中去掉空格
2015-03-27 09:42 565JAVA中去掉空格 1. String.trim ... -
gucie注入学习
2015-01-24 19:36 435http://www.blogjava.net/xylz/ar ... -
Spring的AOP配置
2015-01-21 22:35 421Spring的AOP配置 1.先写一个普通类: packa ... -
记住用户名的,选中复选框则记住用户名和密码,下次登录的时候就方便用户名的登陆
2015-01-17 21:51 855记住用户名的,选中复选框则记住用户名和密码,下次登录的时候就方 ... -
mybatis if 字符串比较注意
2014-12-22 14:39 857正确的写法: <if test='finished= ... -
maven搭建springmvc+spring+mybatis实例
2014-11-30 10:17 924maven管理的springmvc+spring+mybat ... -
log4j教程
2014-10-30 10:35 310log4j教程 1. 简介 2. 安装 3. log4j基本 ... -
通过Jersey客户端API调用REST风格的Web服务
2014-10-22 10:12 844通过Jersey客户端API调用REST风格的Web服务 J ... -
redis
2014-09-27 20:25 399java对redis的基本操作 一 ... -
pring + hibernate+ C3P0+MYSQL
2014-08-14 23:49 3871) applicationContext.xml --- ... -
Spring 事物
2014-07-05 06:34 350千山我独行,不必相送... Angi For Ever Spr ... -
Spring+Quartz实现定时任务的配置方法
2014-06-11 22:01 560Spring+Quartz实现定时任务的配置方法 1、Sch ... -
JAVA实现SFTP的实例:
2014-05-05 11:44 421最近写的一个JAVA实现SFTP的实例: /* * Crea ... -
Java模拟HTTP的Get和Post请求
2014-04-18 16:52 693import java.io.BufferedReader; ... -
Java发送http请求 (get 与 post方法请求)
2014-04-18 16:38 423java发送http请求 (get 与 post方法请求 ... -
Java 使用 URLConnection 模拟 Http Get和Post 提交
2014-04-18 16:27 6941、URLConnectionHelper ... -
HttpClient4使用
2014-03-24 16:11 412package main;import java.i ...
相关推荐
`setScale()`方法用于设置小数点后的位数,并可以选择不同的舍入模式。其中,`BigDecimal.ROUND_HALF_UP`是最常用的四舍五入模式,它遵循传统的小学数学规则。 示例代码如下: ```java import java.math....
然而,处理特定数据类型如BigDecimal时,可能会出现精度丢失或格式不匹配的问题。在本案例中,开发者遇到的问题是,前端期望从后端获取的JSON数据中,BigDecimal类型的数值能够保留两位小数,但实际返回的数据丢失了...
BigDecimal是Java提供的一个大数类,它可以用来进行精确的浮点数运算,避免了传统浮点数运算中可能出现的精度损失问题。在金融或会计系统中,对数据的精度要求很高,BigDecimal就成为首选的数据类型。 在...
### Java中的小数点与百分号处理技巧 在Java编程中,经常需要处理数值的格式化显示问题,尤其是在涉及财务、统计分析等场景时。本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat...
在Java编程中,我们经常会遇到需要处理浮点数的情况,特别是当涉及到金融计算、科学计算等对精度有较高要求的领域时,如何有效地控制小数点后保留的位数显得尤为重要。本文将详细介绍在Java中限制小数位数的几种常见...
- `setScale(2, BigDecimal.ROUND_HALF_UP)` 表示将该`BigDecimal`对象的小数点后保留2位,并采用四舍五入的方式处理第三位及以后的数字。 - 最终得到的`double f1`即为保留两位小数的结果。 #### 方法二:使用`...
java高精度计算通常是指使用BigDecimal类来实现高精度计算,通过设置保留的小数位数来控制计算结果的精度。 java高精度计算的重要性 1. 金融应用:在金融应用中,高精度计算是非常重要的,因为小数点后面的一分钱...
这里需要注意的是,`setScale`方法的第一个参数表示保留的小数位数,第二个参数`BigDecimal.ROUND_HALF_UP`表示采用四舍五入的方式。 ##### 使用`DecimalFormat` `DecimalFormat`是`java.text`包下的一个类,用于...
- `setScale(int newScale, int roundingMode)`:设置新的标度(即小数点后保留的位数),并指定舍入模式。 3. **舍入模式**: - `BigDecimal.ROUND_UP`:远离零舍入,无论下一个数字是多少,都向上舍入。 - `...
根据提供的文件信息,我们可以提炼出几个关键的知识点:如何在JSP中正确计算并显示百分比、如何使用`BigDecimal`来精确控制小数点后的位数以及如何利用`DecimalFormat`格式化输出。 ### JSP中的百分比表示方法 ###...
此外,`BigDecimal` 还提供了调整小数位数的方法 `setScale()`,用于设置结果的精度。例如: ```java BigDecimal mc = mc.setScale(2, BigDecimal.ROUND_HALF_UP); ``` 这将 `mc` 的值四舍五入到小数点后两位。 ...
`BigDecimal`是Java编程语言中`java.math`包内提供的一种高级数据类型,主要用于处理高精度的十进制数值。与基本数据类型`float`或`double`相比,`BigDecimal`能够提供更为准确的计算结果,避免因浮点数计算导致的...
除了上述方法,还有其他方式可以实现保留小数点位数的功能。例如,可以使用`java.math.BigDecimal`类,它提供精确的浮点数运算。以下是一个使用`BigDecimal`的例子: ```java import java.math.BigDecimal; import ...
`BigDecimal`是Java中用于处理高精度、大数值计算的类,提供了多种舍入模式。以下是一个例子: ```java double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_...
对于高精度计算和精确控制小数点后位数的需求,可以使用`java.math.BigDecimal`类。`BigDecimal`提供了多种构造函数和方法,可以方便地进行精确的数学运算,并控制结果的格式。 ```java import java.math....
在Java编程中,BigDecimal类是处理高精度浮点数计算的关键工具,特别是在金融或会计领域,需要精确到小数点后多位的情况下。然而,BigDecimal在实际应用中可能会引发一些问题,尤其是在进行数值比较时。 首先,我们...
`BigDecimal`类是Java中处理高精度数值的关键工具,它通过非标度值和标度的概念实现了精确的十进制计算。在进行货币计算或其他需要精确结果的场景下,`BigDecimal`是不可或缺的选择。在使用过程中,了解其特性和...
总结起来,Java中进行精度计算并指定精确小数位,应使用`BigDecimal`类,通过`DecimalFormat`进行格式化,并结合`setScale`方法来设定小数位数。这个过程可以有效地避免浮点数运算中的精度问题,确保计算结果的准确...
BigDecimal类是Java提供的一种高精度数字类,可以用于保留小数位数。例如,使用以下代码可以将小数保留两位: ```java BigDecimal bd = new BigDecimal("3.14159"); bd = bd.setScale(2, RoundingMode.HALF_UP); ...
在进行货币计算等涉及小数点的运算时,Java中的双精度浮点类型 `double` 的精度问题往往会导致意料之外的结果。 **题目描述**: 假设有一个简单的程序,其目的是计算使用2美元支付1.10美元物品后应找回的零钱金额。...