当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java java.math.MathContext用法及代码示例


java.math.MathContext类提供不可变对象,这些对象封装上下文设置并定义那些数字运算符规则,例如 BigDecimal 类实现的规则。

base-independent配置如下:

  • 精确:运算所使用的位数;此准确度四舍五入为结果。
  • RoundingMode:RoundingMode 对象,用于确定要使用的舍入算法。

The number of significant digits is specified by the precision. The default mode in rounding off is HALF_UP mode which will be introduced in later part.

示例:

假设选择了一个随机数 123,现在的任务是四舍五入 2 位有效数字,您将得到 120。如果您用科学记数法思考,可能会更明显。在科学记数法中,123 等于 1.23e2。如果只保留 2 位有效数字,则得到 1.2e2,即 120。通过减少有效数字的数量,我们可以降低指定数字的精度。

RoundingMode 部分指定我们应该如何处理精度损失。如果您使用 123 作为数字并要求 2 位有效数字,则重复使用该示例会降低准确性。当 RoundingMode 为 HALF_UP(默认模式)时,123 将变为 120。当 RoundingMode 为 CEILING 时,您将得到 130。

用法:类声明

public final class MathContext extends Object  implements Serializable

构造函数:

  • MathContext(int setPrecision)此构造函数构造一个具有指定精度和 HALF_UP 舍入模式的新 MathContext。
  • MathContext(int setPrecision, RoundingMode setRoundingMode)此构造函数构造一个具有指定精度和舍入模式的新MathContext。
  • MathContext(字符串值)此构造函数从字符串构造一个新的MathContext。

现在,详细介绍此类中存在的方法,稍后将在程序的实现部分中使用该方法。

Method

Description

equals(Object x) 此方法将此MathContext 与指定的对象进行比较以确定是否相等。
getPrecision() 此方法返回精度设置。
getRoundingMode() 此方法返回 roundingMode 设置。
hashCode() 此方法返回此 MathContext 的哈希码。
toString() 此方法返回此 MathContext 的字符串表示形式。

例子:

Java


// Java Program to illustrate java.math.Context class 
  
// Importing all classes from 
// java.math package 
import java.math.*; 
  
// Main class 
class GFG { 
  
    // Main driver method 
    public static void main(String args[]) 
    { 
  
        // Custom input number 'N' over which 
        // class operation are performed 
        // N = 246.8 
  
        // erforming the rounding of operations 
  
        // Rounding  off is carried out across 
        // 4 digits 
        // N = 246.8 
        // It has 4 digits only so 
        // the output is same as input 
  
        // Case 1 
        // Across all digits of the input N = 4 
        System.out.println(new BigDecimal( 
            "246.8", 
            new MathContext(4, RoundingMode.HALF_UP))); 
  
        // Case 2 
        // Across 'N/2' of the input 'N' 
        // Here, acrossings 2 digits as input N has 4 digits 
  
        // Rounding HALF_UP 
        System.out.println(new BigDecimal( 
            "246.8", 
            new MathContext(2, RoundingMode.HALF_UP))); 
  
        // Rounding HALF_DOWN 
        System.out.println(new BigDecimal( 
            "246.8", 
            new MathContext(2, RoundingMode.CEILING))); 
  
        // Case 3 
        // Across '1' digit of the input 'N' 
        // Here, acrossings 2 digits of 4 digits of input N 
  
        // Rounding HALF_UP 
        System.out.println(new BigDecimal( 
            "246.8", 
            new MathContext(1, RoundingMode.HALF_UP))); 
  
        // Rounding HALF_DOWN 
        System.out.println(new BigDecimal( 
            "246.8", 
            new MathContext(1, RoundingMode.CEILING))); 
    } 
}
输出
246.8
2.5E+2
2.5E+2
2E+2
3E+2


相关用法


注:本文由纯净天空筛选整理自kapilnama1998大神的英文原创作品 java.math.MathContext Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。