- 浏览: 19641 次
- 性别:
- 来自: 杭州
文章分类
最新评论
1.格式要求
(double) (Math.round(sd3*10000)/10000.0); // 这样为保持4位
(double) (Math.round(sd3*100)/100.0); // 这样为保持2位.
2.另一种办法
import java.text.DecimalFormat;
// 第一个为2位,第二个为3位.
DecimalFormat df2 = new DecimalFormat("###.00");
DecimalFormat df2 = new DecimalFormat("###.000");
System.out.println(df2.format(doube_var));
3.第三种方法
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
rslt = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
// scale表示表示需要精确到小数点以后几位。
4.第四种方法
如果要精确计算后去除小数点,计算出来BigDecimal类型的结果后,有如下三个方法:
toBigInteger() // 如果数字很大用这个,返回一个BigInteger类的对象(JAVA中有这样的类,如果你的程序确实只要整数的话就用这个类吧。),小数部分直接CUT。
intValue() // 返回int型
longValue() // 返回long型
参考:http://foolraty.iteye.com/blog/648171
复制代码
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class TestGetInt {
public static void main(String[] args) {
double i = 2, j = 2.1, k = 2.5, m = 2.9;
System.out.println("舍掉小数取整:Math.floor(" + i + ")=" + (int) Math.floor(i));
System.out.println("舍掉小数取整:Math.floor(" + j + ")=" + (int) Math.floor(j));
System.out.println("舍掉小数取整:Math.floor(" + k + ")=" + (int) Math.floor(k));
System.out.println("舍掉小数取整:Math.floor(" + m + ")=" + (int) Math.floor(m));
System.out.println();
System.out.println("舍掉小数取整:Math.floor(-" + i + ")=" + (int) Math.floor(-i));
System.out.println("舍掉小数取整:Math.floor(-" + j + ")=" + (int) Math.floor(-j));
System.out.println("舍掉小数取整:Math.floor(-" + k + ")=" + (int) Math.floor(-k));
System.out.println("舍掉小数取整:Math.floor(-" + m + ")=" + (int) Math.floor(-m));
System.out.println();
// 这段被注释的代码不能正确的实现四舍五入取整
System.out.println("四舍五入取整:Math.rint(" + i + ")=" + (int) Math.rint(i));
System.out.println("四舍五入取整:Math.rint(" + j + ")=" + (int) Math.rint(j));
System.out.println("四舍五入取整:Math.rint(" + k + ")=" + (int) Math.rint(k));
System.out.println("四舍五入取整:Math.rint(" + m + ")=" + (int) Math.rint(m));
System.out.println();
System.out.println("四舍五入取整:Math.rint(-" + i + ")=" + (int) Math.rint(-i));
System.out.println("四舍五入取整:Math.rint(-" + j + ")=" + (int) Math.rint(-j));
System.out.println("四舍五入取整:Math.rint(-" + k + ")=" + (int) Math.rint(-k));
System.out.println("四舍五入取整:Math.rint(-" + m + ")=" + (int) Math.rint(-m));
System.out.println();
System.out.println("DecimalFormat四舍五入取整:(" + i + ")="
+ new DecimalFormat("0").format(i));
System.out.println("DecimalFormat四舍五入取整:(" + j + ")="
+ new DecimalFormat("0").format(j));
System.out.println("DecimalFormat四舍五入取整:(" + k + ")="
+ new DecimalFormat("0").format(k));
System.out.println("DecimalFormat四舍五入取整:(" + m + ")="
+ new DecimalFormat("0").format(m));
System.out.println();
System.out.println("DecimalFormat四舍五入取整:(-" + i + ")="
+ new DecimalFormat("0").format(-i));
System.out.println("DecimalFormat四舍五入取整:(-" + j + ")="
+ new DecimalFormat("0").format(-j));
System.out.println("DecimalFormat四舍五入取整:(-" + k + ")="
+ new DecimalFormat("0").format(-k));
System.out.println("DecimalFormat四舍五入取整:(-" + m + ")="
+ new DecimalFormat("0").format(-m));
System.out.println();
System.out.println("BigDecimal四舍五入取整:(" + i + ")="
+ new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + j + ")="
+ new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + k + ")="
+ new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + m + ")="
+ new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println();
System.out.println("BigDecimal四舍五入取整:(-" + i + ")="
+ new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + j + ")="
+ new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + k + ")="
+ new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + m + ")="
+ new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println();
System.out.println("凑整:Math.ceil(" + i + ")=" + (int) Math.ceil(i));
System.out.println("凑整:Math.ceil(" + j + ")=" + (int) Math.ceil(j));
System.out.println("凑整:Math.ceil(" + k + ")=" + (int) Math.ceil(k));
System.out.println("凑整:Math.ceil(" + m + ")=" + (int) Math.ceil(m));
System.out.println();
System.out.println("凑整:Math.ceil(-" + i + ")=" + (int) Math.ceil(-i));
System.out.println("凑整:Math.ceil(-" + j + ")=" + (int) Math.ceil(-j));
System.out.println("凑整:Math.ceil(-" + k + ")=" + (int) Math.ceil(-k));
System.out.println("凑整:Math.ceil(-" + m + ")=" + (int) Math.ceil(-m));
System.out.println();
System.out.println("四舍五入取整:Math.round(" + i + ")=" + (int) Math.round(i));
System.out.println("四舍五入取整:Math.round(" + j + ")=" + (int) Math.round(j));
System.out.println("四舍五入取整:Math.round(" + k + ")=" + (int) Math.round(k));
System.out.println("四舍五入取整:Math.round(" + m + ")=" + (int) Math.round(m));
System.out.println();
System.out.println("四舍五入取整:Math.round(-" + i + ")=" + (int) Math.round(-i));
System.out.println("四舍五入取整:Math.round(-" + j + ")=" + (int) Math.round(-j));
System.out.println("四舍五入取整:Math.round(-" + k + ")=" + (int) Math.round(-k));
System.out.println("四舍五入取整:Math.round(-" + m + ")=" + (int) Math.round(-m));
}
}
复制代码
舍掉小数取整:Math.floor(2.0)=2
舍掉小数取整:Math.floor(2.1)=2
舍掉小数取整:Math.floor(2.5)=2
舍掉小数取整:Math.floor(2.9)=2
舍掉小数取整:Math.floor(-2.0)=-2
舍掉小数取整:Math.floor(-2.1)=-3
舍掉小数取整:Math.floor(-2.5)=-3
舍掉小数取整:Math.floor(-2.9)=-3
四舍五入取整:Math.rint(2.0)=2
四舍五入取整:Math.rint(2.1)=2
四舍五入取整:Math.rint(2.5)=2
四舍五入取整:Math.rint(2.9)=3
四舍五入取整:Math.rint(-2.0)=-2
四舍五入取整:Math.rint(-2.1)=-2
四舍五入取整:Math.rint(-2.5)=-2
四舍五入取整:Math.rint(-2.9)=-3
DecimalFormat四舍五入取整:(2.0)=2
DecimalFormat四舍五入取整:(2.1)=2
DecimalFormat四舍五入取整:(2.5)=2
DecimalFormat四舍五入取整:(2.9)=3
DecimalFormat四舍五入取整:(-2.0)=-2
DecimalFormat四舍五入取整:(-2.1)=-2
DecimalFormat四舍五入取整:(-2.5)=-2
DecimalFormat四舍五入取整:(-2.9)=-3
BigDecimal四舍五入取整:(2.0)=2
BigDecimal四舍五入取整:(2.1)=2
BigDecimal四舍五入取整:(2.5)=3
BigDecimal四舍五入取整:(2.9)=3
BigDecimal四舍五入取整:(-2.0)=-2
BigDecimal四舍五入取整:(-2.1)=-2
BigDecimal四舍五入取整:(-2.5)=-3
BigDecimal四舍五入取整:(-2.9)=-3
凑整:Math.ceil(2.0)=2
凑整:Math.ceil(2.1)=3
凑整:Math.ceil(2.5)=3
凑整:Math.ceil(2.9)=3
凑整:Math.ceil(-2.0)=-2
凑整:Math.ceil(-2.1)=-2
凑整:Math.ceil(-2.5)=-2
凑整:Math.ceil(-2.9)=-2
四舍五入取整:Math.round(2.0)=2
四舍五入取整:Math.round(2.1)=2
四舍五入取整:Math.round(2.5)=3
四舍五入取整:Math.round(2.9)=3
四舍五入取整:Math.round(-2.0)=-2
四舍五入取整:Math.round(-2.1)=-2
四舍五入取整:Math.round(-2.5)=-2
四舍五入取整:Math.round(-2.9)=-3
(double) (Math.round(sd3*10000)/10000.0); // 这样为保持4位
(double) (Math.round(sd3*100)/100.0); // 这样为保持2位.
2.另一种办法
import java.text.DecimalFormat;
// 第一个为2位,第二个为3位.
DecimalFormat df2 = new DecimalFormat("###.00");
DecimalFormat df2 = new DecimalFormat("###.000");
System.out.println(df2.format(doube_var));
3.第三种方法
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
rslt = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
// scale表示表示需要精确到小数点以后几位。
4.第四种方法
如果要精确计算后去除小数点,计算出来BigDecimal类型的结果后,有如下三个方法:
toBigInteger() // 如果数字很大用这个,返回一个BigInteger类的对象(JAVA中有这样的类,如果你的程序确实只要整数的话就用这个类吧。),小数部分直接CUT。
intValue() // 返回int型
longValue() // 返回long型
参考:http://foolraty.iteye.com/blog/648171
复制代码
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class TestGetInt {
public static void main(String[] args) {
double i = 2, j = 2.1, k = 2.5, m = 2.9;
System.out.println("舍掉小数取整:Math.floor(" + i + ")=" + (int) Math.floor(i));
System.out.println("舍掉小数取整:Math.floor(" + j + ")=" + (int) Math.floor(j));
System.out.println("舍掉小数取整:Math.floor(" + k + ")=" + (int) Math.floor(k));
System.out.println("舍掉小数取整:Math.floor(" + m + ")=" + (int) Math.floor(m));
System.out.println();
System.out.println("舍掉小数取整:Math.floor(-" + i + ")=" + (int) Math.floor(-i));
System.out.println("舍掉小数取整:Math.floor(-" + j + ")=" + (int) Math.floor(-j));
System.out.println("舍掉小数取整:Math.floor(-" + k + ")=" + (int) Math.floor(-k));
System.out.println("舍掉小数取整:Math.floor(-" + m + ")=" + (int) Math.floor(-m));
System.out.println();
// 这段被注释的代码不能正确的实现四舍五入取整
System.out.println("四舍五入取整:Math.rint(" + i + ")=" + (int) Math.rint(i));
System.out.println("四舍五入取整:Math.rint(" + j + ")=" + (int) Math.rint(j));
System.out.println("四舍五入取整:Math.rint(" + k + ")=" + (int) Math.rint(k));
System.out.println("四舍五入取整:Math.rint(" + m + ")=" + (int) Math.rint(m));
System.out.println();
System.out.println("四舍五入取整:Math.rint(-" + i + ")=" + (int) Math.rint(-i));
System.out.println("四舍五入取整:Math.rint(-" + j + ")=" + (int) Math.rint(-j));
System.out.println("四舍五入取整:Math.rint(-" + k + ")=" + (int) Math.rint(-k));
System.out.println("四舍五入取整:Math.rint(-" + m + ")=" + (int) Math.rint(-m));
System.out.println();
System.out.println("DecimalFormat四舍五入取整:(" + i + ")="
+ new DecimalFormat("0").format(i));
System.out.println("DecimalFormat四舍五入取整:(" + j + ")="
+ new DecimalFormat("0").format(j));
System.out.println("DecimalFormat四舍五入取整:(" + k + ")="
+ new DecimalFormat("0").format(k));
System.out.println("DecimalFormat四舍五入取整:(" + m + ")="
+ new DecimalFormat("0").format(m));
System.out.println();
System.out.println("DecimalFormat四舍五入取整:(-" + i + ")="
+ new DecimalFormat("0").format(-i));
System.out.println("DecimalFormat四舍五入取整:(-" + j + ")="
+ new DecimalFormat("0").format(-j));
System.out.println("DecimalFormat四舍五入取整:(-" + k + ")="
+ new DecimalFormat("0").format(-k));
System.out.println("DecimalFormat四舍五入取整:(-" + m + ")="
+ new DecimalFormat("0").format(-m));
System.out.println();
System.out.println("BigDecimal四舍五入取整:(" + i + ")="
+ new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + j + ")="
+ new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + k + ")="
+ new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(" + m + ")="
+ new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println();
System.out.println("BigDecimal四舍五入取整:(-" + i + ")="
+ new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + j + ")="
+ new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + k + ")="
+ new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("BigDecimal四舍五入取整:(-" + m + ")="
+ new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println();
System.out.println("凑整:Math.ceil(" + i + ")=" + (int) Math.ceil(i));
System.out.println("凑整:Math.ceil(" + j + ")=" + (int) Math.ceil(j));
System.out.println("凑整:Math.ceil(" + k + ")=" + (int) Math.ceil(k));
System.out.println("凑整:Math.ceil(" + m + ")=" + (int) Math.ceil(m));
System.out.println();
System.out.println("凑整:Math.ceil(-" + i + ")=" + (int) Math.ceil(-i));
System.out.println("凑整:Math.ceil(-" + j + ")=" + (int) Math.ceil(-j));
System.out.println("凑整:Math.ceil(-" + k + ")=" + (int) Math.ceil(-k));
System.out.println("凑整:Math.ceil(-" + m + ")=" + (int) Math.ceil(-m));
System.out.println();
System.out.println("四舍五入取整:Math.round(" + i + ")=" + (int) Math.round(i));
System.out.println("四舍五入取整:Math.round(" + j + ")=" + (int) Math.round(j));
System.out.println("四舍五入取整:Math.round(" + k + ")=" + (int) Math.round(k));
System.out.println("四舍五入取整:Math.round(" + m + ")=" + (int) Math.round(m));
System.out.println();
System.out.println("四舍五入取整:Math.round(-" + i + ")=" + (int) Math.round(-i));
System.out.println("四舍五入取整:Math.round(-" + j + ")=" + (int) Math.round(-j));
System.out.println("四舍五入取整:Math.round(-" + k + ")=" + (int) Math.round(-k));
System.out.println("四舍五入取整:Math.round(-" + m + ")=" + (int) Math.round(-m));
}
}
复制代码
舍掉小数取整:Math.floor(2.0)=2
舍掉小数取整:Math.floor(2.1)=2
舍掉小数取整:Math.floor(2.5)=2
舍掉小数取整:Math.floor(2.9)=2
舍掉小数取整:Math.floor(-2.0)=-2
舍掉小数取整:Math.floor(-2.1)=-3
舍掉小数取整:Math.floor(-2.5)=-3
舍掉小数取整:Math.floor(-2.9)=-3
四舍五入取整:Math.rint(2.0)=2
四舍五入取整:Math.rint(2.1)=2
四舍五入取整:Math.rint(2.5)=2
四舍五入取整:Math.rint(2.9)=3
四舍五入取整:Math.rint(-2.0)=-2
四舍五入取整:Math.rint(-2.1)=-2
四舍五入取整:Math.rint(-2.5)=-2
四舍五入取整:Math.rint(-2.9)=-3
DecimalFormat四舍五入取整:(2.0)=2
DecimalFormat四舍五入取整:(2.1)=2
DecimalFormat四舍五入取整:(2.5)=2
DecimalFormat四舍五入取整:(2.9)=3
DecimalFormat四舍五入取整:(-2.0)=-2
DecimalFormat四舍五入取整:(-2.1)=-2
DecimalFormat四舍五入取整:(-2.5)=-2
DecimalFormat四舍五入取整:(-2.9)=-3
BigDecimal四舍五入取整:(2.0)=2
BigDecimal四舍五入取整:(2.1)=2
BigDecimal四舍五入取整:(2.5)=3
BigDecimal四舍五入取整:(2.9)=3
BigDecimal四舍五入取整:(-2.0)=-2
BigDecimal四舍五入取整:(-2.1)=-2
BigDecimal四舍五入取整:(-2.5)=-3
BigDecimal四舍五入取整:(-2.9)=-3
凑整:Math.ceil(2.0)=2
凑整:Math.ceil(2.1)=3
凑整:Math.ceil(2.5)=3
凑整:Math.ceil(2.9)=3
凑整:Math.ceil(-2.0)=-2
凑整:Math.ceil(-2.1)=-2
凑整:Math.ceil(-2.5)=-2
凑整:Math.ceil(-2.9)=-2
四舍五入取整:Math.round(2.0)=2
四舍五入取整:Math.round(2.1)=2
四舍五入取整:Math.round(2.5)=3
四舍五入取整:Math.round(2.9)=3
四舍五入取整:Math.round(-2.0)=-2
四舍五入取整:Math.round(-2.1)=-2
四舍五入取整:Math.round(-2.5)=-2
四舍五入取整:Math.round(-2.9)=-3
发表评论
-
Spring 中配置定时器
2014-03-06 20:29 356Spring 中配置定时器 <bean id=&quo ... -
jQuery遍历对象/数组/集合
2014-01-16 14:22 544转载自: 网络 1.jquery 遍历对象 ... -
java二分搜索算法
2013-10-08 16:29 979二分查找又称折半查找, 优点是比较次数少,查找速度快,平均性能 ... -
java集合操作-----求两个集合的交集和并集
2013-10-02 12:12 2662java求两个集合的交集和并集 java如 ... -
Java里面如何求两个集合的交集
2013-10-02 12:07 963Java代码 : public class TestInte ... -
对比两个同类型的List返回差异List集合
2013-09-30 16:25 1695/// <summary> /// 对比两个同类型 ... -
JAVA数组的复制
2013-09-29 20:39 744在JAVA里面,可以用复制语句"A=B"给 ... -
Eclipse快捷键大全
2013-09-29 20:35 491今天看见人家总结了一 ...
相关推荐
js ,加法,减法,乘法,除法,计算完之后,很多小数点,比如0.3 / 3 = 0.09999999999999999,尤其是在金钱方面万万不能四舍五入,加减乘除封装为方法,方便调用,完美解决
JavaScript小数点精确计算,解决js小数点计算的问题,js计算,js小数计算,js浮点数计算
Android 精确计算工具类。 /** * @Title: Arith.java * @Package com.uxun.pay.util * @Description: TODO(用一句话描述该文件做什么) * @author daiw * @date 2016-1-5 上午9:05:34 * @version V1.0 */ ...
SAP HANA数据计算后小数点位数异常的官方解决方案。。
Mader.NASM.a除b除法带小数点后八位算法.
四舍五入 ,浮点数精确计算,浮点数输出(科学记数法)等等
圆周率π小数点后一亿位数.txt
Crack8_编程小组[K.8] QQ吻 欢迎您 Blog http://qqhack8.blog.163.com
TIA博途中如何处理浮点数从而得到精确的小数点位数的具体方法
计算π后任意位数的Python程序 & 圆周率pi/π小数点后10万位 当前 k 取 10,计算到10万位都没有错误,已经过验证。
获取float类型小数点位数,先将数据转换为varchar类型,然后对转换后的数据进行翻转,获取小数点所在的位置即可
用正则表达式去除小数点后面多余的零,简单实用
TIA博途_截取浮点数_自定义小数位数_全局FC库文件_V17版本_GF_截取浮点数_自定义小数点后位数
java工具类去掉字符串String中的.点。android开发java程序员常用工具类。博文介绍:http://blog.csdn.net/qq_21376985/article/details/51482313
唔,其实里面就是一个工具类,加减乘除、保留两位小数。一共5个方法。。。emmmm.....为啥分这么高呢。因为宝宝想分想疯了。 附代码,有土豪就打赏打赏,没土豪的直接拿去使吧。 package cn.cisdom.base.utils; ...
java代码-使用java解决Java中保留小数点的方法的源代码 ——学习参考资料:仅用于个人学习使用!
圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一百万位数圆周率π小数点后一...
小学五年级数学小数点乘除法计算练习题合集48502.doc
使用python实现,计算任意正整数的平方根,精确到小数点指定位数。计算原理:小数点后每位进行探测 原理简单,主要使用到Python中整数大小不受限制
java 处理小数点 百分号等