提供精确的小数位四舍五入处理,这个工具类很实用!
/*
* <p>Title: 提供精确的小数位四舍五入处理</p>
* <p>Description: 提供精确的小数位四舍五入处理</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: ***</p>
*/
package com.neusoft.others;
import Java.math.BigDecimal;
/**
* 类Round.java的实现描述:提供精确的小数位四舍五入处理
*
* @author wangdw wang8121@hotmail.com
* @version 1.0
* Date 2005-1-14
* @see java.lang.Class
* History:
* <author> <time> <version> <desc>
*/
public class Round
{
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
private double round(double v, int scale)
{
if (scale < 0)
{
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*
* 非四舍五入取整处理
* @param v
* @return
*/
public int roundDown(double v)
{
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, 0, BigDecimal.ROUND_DOWN).intValue();
}
/**
*
* 四舍五入取整处理
* @param v
* @return
*/
public int roundUp(double v)
{
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, 0, BigDecimal.ROUND_UP).intValue();
}
public static void main(String[] args)
{
Round round = new Round();
System.out.println(round.round(18.456, 2));
System.out.println(round.roundDown(18.567));
System.out.println(round.roundUp(18.567));
double doubleValue = 18.567;
int intValue = (int)doubleValue;
System.out.println(intValue);
}
分享到:
相关推荐
在C#编程中,有时我们需要对浮点数进行处理,特别是在财务计算或数据展示时,可能需要截取小数部分,而不是使用默认的四舍五入规则。这涉及到数值类型的精度控制和格式化技巧。本篇文章将深入探讨如何在C#中实现这个...
在处理金融数据时,精确到一定小数位的四舍五入操作是必需的,以避免因精度问题导致的计算误差。在Python中,我们可以使用内置的`round`函数,但在处理金钱时,最好使用`decimal`模块,因为它提供了更高精度的浮点数...
1. **精度**:ROUND函数提供最精确的四舍五入,而INT与乘法的组合仅适用于整数四舍五入。 2. **复杂性**:ROUND函数最简单,MID与FIND组合较为复杂,INT与乘法的组合介于两者之间。 3. **数据类型**:如果处理的是纯...
在编程领域,尤其是在 Delphi 这样的面向对象的 Pascal 编程环境中,有时标准库提供的四舍五入函数可能无法满足特定需求,特别是在处理财务数据时。标准的四舍五入算法可能会导致非预期的结果,因为它们通常遵循银行...
Delphi 中的四舍五入函数 `FloatDigit` 可以有效地帮助开发者对浮点数进行精确控制。通过对输入参数的灵活设置,可以轻松实现不同精度的四舍五入处理。此外,通过对代码的深入理解,还可以根据具体应用场景进行...
例如,如果你有变量`x = 3.14159`,你可以用`Round(x, 2)`将其四舍五入到两位小数,得到`3.14`。 然而,`Round`函数在处理边缘情况时可能不符合某些特定需求,例如它遵循银行家舍入规则,在四舍五入到最接近的偶数...
四舍五入是数据处理中一种常见的舍入方法,目的是为了简化数值的表示,使之更加便于阅读和计算。在单片机和C语言编程中,由于计算精度和硬件资源的限制,正确地使用四舍五入变得尤为重要。但传统的四舍五入方法存在...
在编程和计算机科学中,"四舍五入"是一个常见的概念,用于处理浮点数或小数,并将它们转换为最接近的整数。在这个场景中,标题"四舍五入_四舍五入问题_源码"暗示我们将讨论如何在编程中实现四舍五入操作,特别是与...
### JavaScript 四舍五入并保留两位小数的方法 在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在...
本文将详细探讨如何在C#中使用`Math.Round`函数进行四舍五入操作,并提供相关的代码示例和注意事项,以帮助开发者更好地理解和应用这一重要的数值处理技术。 ### C#中的`Math.Round`函数 `Math.Round`是C#中Math类...
虽然这种方式能够达到四舍五入的效果,但它并不是一个纯粹的数值处理函数,不建议在需要精确数值计算的地方使用。 3. **`Trunc`函数**: `Trunc`函数的作用是从一个浮点数中截断所有的小数部分,只保留整数部分。...
四舍五入是一种常见的数值处理方法,主要用于简化数字表示或确保计算精度。该方法规定:当需要对一个数字进行取整时,如果小数部分小于0.5,则向下取整;如果小数部分等于或大于0.5,则向上取整。 #### 四舍五入在...
它接受一个双精度浮点数`t`和一个整数`n`作为参数,`t`代表要进行四舍五入操作的数字,而`n`则表示四舍五入到小数点后第`n`位。函数内部首先利用`n_hundred()`函数计算出10的`n`次幂,然后将其与`t`相乘,转换成整数...
### JavaScript 四舍五入...其中,`Math.round()`结合乘除法是最标准且最常用的四舍五入实现方式,而其他方法虽然实现简单但主要应用于展示而非精确计算的场合。在实际开发中,根据具体需求选择最合适的方法至关重要。
### 四舍五入中小数位问题:深入探讨与科学解决方案 #### 一、四舍五入的传统理解及其局限性 在数学运算中,四舍五入是一种常见的处理小数精度的方法,尤其当数据需要简化或适配特定显示格式时。传统上,四舍五入...
在Delphi编程环境中,四舍五入操作是一个常见的数学需求,尤其在处理浮点数时。标题"delphi四舍五入例子"表明我们将探讨如何在Delphi中进行四舍五入的操作。描述中提到“一直没有好的控件”,暗示可能在寻找一种...
在Python编程语言中,实现四舍五入功能是非常常见的需求,这主要涉及到数值处理和浮点数精度控制。本文将详细讲解如何在Python中进行四舍五入操作,并探讨相关的重要知识点。 首先,Python提供了内置的`round()`...
对于负数的四舍五入,`BigDecimal`同样可以提供精确控制。只需传入负数作为`BigDecimal`的构造函数参数即可。 示例代码如下: ```java double i = -3.856; System.out.println("四舍五入(-3.856)=" + new ...
在本文中,我们将介绍JavaScript中的两个重要数学函数...此外,自定义的四舍五入方法也提供了一种灵活处理数字的有效途径。在编程实践中,了解和运用这些基础函数和技巧,将有助于编写更加稳定和精确的JavaScript代码。