`
844604778
  • 浏览: 550824 次
文章分类
社区版块
存档分类
最新评论

Java四舍五入小工具

 
阅读更多

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));
	}
}


分享到:
评论

相关推荐

    关于java的四舍五入问题

    NULL 博文链接:https://hcc20010713.iteye.com/blog/811810

    提供精 确的浮点数运算,包括加减乘除和四舍五入

    由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。

    ArithmeticUtils用于高精确处理常用的数学运算工具类

    提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四...

    java小数处理工具类

    java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...

    java常用工具类的使用

    1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰。学的程序越多,不懂的知识越多。 ...

    精确计算工具类

    * (由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入) * @author chenke * @time 2017/12/5 16:22 * @mail ch_chenke@163.com */ public class Arith...

    Java 加减乘除工具类(解决精度损失问题)

    //精度为2,舍入模式为大于0.5进1,否则舍弃 BigDecimal b1 = new BigDecimal(Double.toString(value1.doubleValue())); BigDecimal b2 = new BigDecimal(Double.toString(value2.doubleValue())); return b1....

    java随机数

    1.Math.round(Math.random() * 10) 使分布不平衡,例如:0.0 - 0.499999将四舍五入为0,而0.5至1.499999将四舍五入为1。那么如何使用旧式语法来实现正确的均衡分布,如下: 1.Math.floor(Math.random() * 11) 幸运...

    Java中使用的常用数学类

    由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供 精确的浮点数运算,包括加减乘除和四舍五入,以及百分数转换。

    java_资金运算工具类_提供精确的加减乘除法等运算

    一些工具类代码块的集合: 提供精确的加法运算 ...当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四舍五入处理 取余数 取余数 BigDecimal 比较大小 获取自己想要的数据格式

    Java开发常用的方法

    资源为Java源代码,内含系列常用静态方法,可以直接拿来使用,如:拼合一维数组为字符串;产生在start和end之间的num个随机整数,返回值存在...四舍五入;判断字符串是否是小数;半角数字的unicode范围;取得ascii码;

    DecimalCalculate.java

    Decimal 金额转换,工具类,提供常用的Decimal类型与其它类型之间的转换。由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。

    面试题: Java Math类常见的数学运算和用法

    本文将介绍Java Math类的常见数学运算和用法,包括四舍五入、取整、幂运算、三角函数、随机数生成等。通过学习本文,您将了解如何使用Math类进行常用数学计算,以及如何应用这些方法解决实际问题。

    JavaSwing 绘制折现图用到的jar包免费下载,需要自取

    包含 旧版本 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 ...

    整理后java开发全套达内学习笔记(含练习)

    float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位有效数字 注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ...

    matlab求导代码-Cojac:用于Java的数字嗅探工具和扩展数字包装器

    数值嗅探器和其他浮点小工具 自动检测所有带有数字的有毒问题,例如: 整数溢出 浮点/双点吸收和抵消 NaN或无限结果 冒犯性的类型转换 浮点数的新行为,例如doubles-are-floats或重新定义默认的舍入模式。 无需重新...

    Python 2.5

    JPython是用Java写的Python,它完全支持Java,在这个环境下使用Python可以随意地使用Java的类库。语言扩展可以用C、C++或Java为Python编写新的新言模块,如函数。或者与Python直接编译在一起,或者采用动态库装入...

Global site tag (gtag.js) - Google Analytics