Java实现四舍五入,有什么不足恳请指正
public class RoundTool {
public static String round(double num, int dotNum) {
double temp = 1.0;//用于五入时直接进位
for (int i = 0; i < dotNum; i++) {
temp = temp / 10;
}
String strNum = String.valueOf(num);
int dotLoca = strNum.indexOf(".");// 确定小数点位置
String beforStr = null;
if ((strNum.substring(dotLoca)).length() - 1 > dotNum) {// 如果给出的数小数点位数大于要求保留小数点位数
beforStr = strNum.substring(0, dotLoca + dotNum + 1);// 从头开始截取所要求保留小数点前一位
String endStr = strNum.substring(dotLoca + dotNum + 1, dotLoca
+ dotNum + 2);// 截取要求保留小数位数后一位
if (Integer.parseInt(endStr) >= 5) {//五入
double beforTemp = Double.valueOf(beforStr);
beforStr = String.valueOf(beforTemp + temp);
}
if (beforStr.substring(dotLoca).length() -1< dotNum) {//五入后小数点后几位0自动舍去后补足
int intTemp = dotNum - beforStr.substring(dotLoca).length() + 1;
for (int i = 0; i < intTemp; i++) {
beforStr = beforStr + 0;
}
}
} else {//给出数小数点位数不足需保留位数补0
beforStr = strNum;
int intTemp = dotNum - beforStr.substring(dotLoca).length() + 1;
for (int i = 0; i < intTemp; i++) {
beforStr = beforStr + 0;
}
}
return beforStr.substring(0,dotLoca+dotNum+1);
}
public static void main(String[] args) {
System.out.println(RoundTool.round(123.456789, 3));
}
}
分享到:
相关推荐
NULL 博文链接:https://hcc20010713.iteye.com/blog/811810
由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。
提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四...
java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...
1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰。学的程序越多,不懂的知识越多。 ...
* (由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入) * @author chenke * @time 2017/12/5 16:22 * @mail ch_chenke@163.com */ public class Arith...
//精度为2,舍入模式为大于0.5进1,否则舍弃 BigDecimal b1 = new BigDecimal(Double.toString(value1.doubleValue())); BigDecimal b2 = new BigDecimal(Double.toString(value2.doubleValue())); return b1....
1.Math.round(Math.random() * 10) 使分布不平衡,例如:0.0 - 0.499999将四舍五入为0,而0.5至1.499999将四舍五入为1。那么如何使用旧式语法来实现正确的均衡分布,如下: 1.Math.floor(Math.random() * 11) 幸运...
由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供 精确的浮点数运算,包括加减乘除和四舍五入,以及百分数转换。
一些工具类代码块的集合: 提供精确的加法运算 ...当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四舍五入处理 取余数 取余数 BigDecimal 比较大小 获取自己想要的数据格式
资源为Java源代码,内含系列常用静态方法,可以直接拿来使用,如:拼合一维数组为字符串;产生在start和end之间的num个随机整数,返回值存在...四舍五入;判断字符串是否是小数;半角数字的unicode范围;取得ascii码;
Decimal 金额转换,工具类,提供常用的Decimal类型与其它类型之间的转换。由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。
本文将介绍Java Math类的常见数学运算和用法,包括四舍五入、取整、幂运算、三角函数、随机数生成等。通过学习本文,您将了解如何使用Math类进行常用数学计算,以及如何应用这些方法解决实际问题。
包含 旧版本 gnujaxp.jar jcommon-1.0.13.jar jfreechart-1.0.10-experimental.jar jfreechart-1.0.10-swt.jar swtgraphics2d.jar junit.jar 新版本 jcommon-1.0.23.jar jfreechart-1.0.19.jar ...
float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位有效数字 注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ...
数值嗅探器和其他浮点小工具 自动检测所有带有数字的有毒问题,例如: 整数溢出 浮点/双点吸收和抵消 NaN或无限结果 冒犯性的类型转换 浮点数的新行为,例如doubles-are-floats或重新定义默认的舍入模式。 无需重新...
JPython是用Java写的Python,它完全支持Java,在这个环境下使用Python可以随意地使用Java的类库。语言扩展可以用C、C++或Java为Python编写新的新言模块,如函数。或者与Python直接编译在一起,或者采用动态库装入...