當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。