`
shenjun134
  • 浏览: 16985 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

各种四舍五入的模式

    博客分类:
  • java
 
阅读更多
package com.sc;

import java.math.RoundingMode;
import java.text.NumberFormat;

public class DoubleTest {
	public static void main(String[] args) {
//		test1();
		test2();
	}
	
	public static void test1(){
		double num1 = 2.123456789;
		System.out.println(Math.log(num1));
		System.out.println(Math.E);
		System.out.println(Math.PI);
		System.out.println(Math.cbrt(num1));
		System.out.println(Math.ceil(num1));
		System.out.println(Math.hypot(1, 2));
		System.out.println(Math.log(num1));
		System.out.println(Math.log(num1));
		System.out.println(Math.log(num1));
		System.out.println(Math.log(num1));
		System.out.println(Math.log(num1));
	}
	
	public static void test2(){
		double value = 1.23456789;
		for(int i = 0; i < 6; i++){
			System.out.println(round(value, i));
			System.out.println(round2(value, i));
			System.out.println(round3(value, i));
			System.out.println(round4(value, i));
			System.out.println(round5(value, i));
			System.out.println(round6(value, i));
			System.out.println(round7(value, i));
//			System.out.println(round8(value, i));
			System.out.println(round9(value, i));
			System.out.println("***************************************************");
		}
	}
	
	public static double round(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.HALF_UP);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round2(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.CEILING);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round3(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.valueOf(scale));
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round4(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.DOWN);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round5(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.FLOOR);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round6(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.HALF_DOWN);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round7(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.HALF_EVEN);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	
	public static double round8(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.UNNECESSARY);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
	
	public static double round9(double value, int scale){
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setRoundingMode(RoundingMode.UP);
		numberFormat.setMaximumFractionDigits(scale);
		numberFormat.setMinimumFractionDigits(scale);
		return Double.valueOf(numberFormat.format(value));
	}
}
分享到:
评论

相关推荐

    c#将带有小数点的数值四舍五入为整数

    这个过载版本允许指定四舍五入模式。`MidpointRounding`枚举提供了两种选项:`AwayFromZero`(默认)和`ToEven`(银行家舍入)。其中`AwayFromZero`表示向远离零的方向舍入,而`ToEven`则表示向最近的偶数方向舍入...

    python 实现四舍五入功能

    在上面的例子中,`quantize()`方法的第一个参数定义了要保留的小数位数,第二个参数指定了舍入模式,`decimal.ROUND_HALF_UP`表示标准的四舍五入。 还有一种情况是,你可能需要在四舍五入前先对数字进行放大或缩小...

    C#使用round函数四舍五入的方法

    在C#的`Math.Round`方法中,有三个参数:要四舍五入的数值、保留的小数位数以及舍入模式。默认情况下,如果省略第三个参数,它将使用`MidpointRounding.ToEven`,也就是向最接近的偶数舍入。这就意味着,当5后面跟着...

    java 四舍五入 需要的朋友看看

    其中,`BigDecimal.ROUND_HALF_UP`是最常用的四舍五入模式,它遵循传统的小学数学规则。 示例代码如下: ```java import java.math.BigDecimal; public class Test { public static void main(String[] args) { ...

    c#对计算结果进行四舍五入

    // 添加四舍五入模式选项 roundingModeBox.Items.Add("到最接近的整数"); roundingModeBox.Items.Add("向零靠近"); roundingModeBox.Items.Add("远离零"); // 绑定事件 roundButton.Click += ...

    PHP 四舍五入函数和进一函数

    3. `$mode`(可选):四舍五入模式,可以是以下值: - `PHP_ROUND_HALF_UP`(默认):常规四舍五入,如果尾数等于0.5,则向最接近的偶数方向舍入(也称为银行家舍入)。 - `PHP_ROUND_HALF_DOWN`:如果尾数等于0.5...

    四舍六入五成双算法

    与传统的四舍五入不同,后者遇到5总是倾向于进位,可能导致结果偏向较大数值,从而积累误差。而四舍六入五成双算法通过确保舍入的随机性,减少了这种系统性的偏差,使得测量结果更准确地反映出真实值。 ### C#中的...

    js四舍五入-保留两位小数

    ### JavaScript 四舍五入并保留两位小数的方法 在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在...

    金额的大小转换及小数的四舍五入处理

    四舍五入模式有多种,如`ROUND_UP`(向上取整)、`ROUND_DOWN`(向下取整)等,`ROUND_HALF_UP`是最常用的,即常规的四舍五入规则。 总结起来,金额的大小转换涉及到数字的格式化,确保其符合人类阅读习惯;而小数...

    试验计算用四舍六入五判断算法C#实现

    标准的`Math.Round`方法虽然方便,但默认的舍入模式并不符合四舍六入五的规则。因此,我们需要自定义一个函数来实现这一策略。 首先,我们需要获取待舍入数字的小数部分,这可以通过减去整数部分来实现。然后,我们...

    四舍五入转换程序(VB6.0源代码编写On Error GoTo cw,Text2.Text = CInt(Text1.Text)

    在VB6.0编程环境中,四舍五入转换是一个常见的任务,主要用于处理用户输入的数据或者在数据处理过程中确保数值精度。本程序的核心是利用Visual Basic的内置函数和错误处理机制来实现这一功能。以下是该程序的主要...

    MATLAB四舍五入.doc

    MATLAB 四舍五入 MATLAB 中的四舍五入函数是指 fix、floor、ceil 和 round 函数,这些函数在编程...MATLAB 的四舍五入函数和输出函数可以帮助我们更好地处理数字和文字信息,并且可以使用 format 命令来控制显示模式。

    ios-四舍五入.zip

    接着,我们创建了一个 NSDecimalNumberHandler 对象,设置了四舍五入模式(这里使用的是 NSRoundPlain ,即普通的四舍五入)和精度。然后,我们使用该处理程序对 NSDecimalNumber 进行四舍五入,并将结果转换回 ...

    python3 小数位的四舍五入(用两种方法解决round 遇5不进)

    `quantize()`方法用于将`Decimal`对象四舍五入到指定的精度,`ROUND_HALF_UP`是四舍五入模式,确保在5时向上取整。 这种被称为“银行家舍入法”的策略,是很多编程语言和科学计算中广泛采用的规则,目的是在舍入...

    易语言四舍五入命令使用讲解

    在易语言中,四舍五入命令支持两种模式:正常四舍五入和银行家舍入。正常四舍五入遵循常规的数学规则,即当需要舍弃的数字等于5时,如果5前的数字是偶数则舍去,如果是奇数则进一。银行家舍入法则在5前为偶数时同样...

    java 四舍五入保留小数的实现方法

    在Java编程语言中,有时我们需要对浮点数进行四舍五入操作,以便在特定场景下得到精确的小数值。以下是一些常用的Java四舍五入保留小数的实现方法: ### 方法一:使用`BigDecimal` `BigDecimal`是Java中处理高精度...

    java中DecimalFormat四舍五入用法详解

    在上面的代码中,我们使用 `###0.00` 和 `###0.##` 两个模式来实现四舍五入。其中,`###0.00` 会自动补零,而 `###0.##` 不会补零。 DecimalFormat 的模式 DecimalFormat 的模式是由多个符号组成的,包括: * `0`...

    JSTL标签的formatNumber 格式化数字,四舍六入问题。

    1. 自定义模式:通过`pattern`属性指定一个自定义模式,包含一个带有四舍五入模式的` DecimalFormat`。例如,模式`#,##0.###`表示保留三位小数,并进行四舍五入。 2. 使用`&lt;c:set&gt;`标签结合Java代码:在JSP页面上,...

    PHP四舍五入、取整、round函数使用示例

    round() 函数的默认模式是 PHP_ROUND_HALF_UP,即通常的四舍五入模式。在不指定 $precision 参数的情况下,默认保留0位小数。例如,round(3.4); // 输出 3。对于5或以上的情况,会向上舍入,例如 round(3.5); // ...

Global site tag (gtag.js) - Google Analytics