欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java BigDecimal除法精度和格式化輸出方式

 更新時(shí)間:2021年08月13日 14:56:42   作者:zehong1995  
這篇文章主要介紹了Java BigDecimal除法精度和格式化輸出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

BigDecimal除法精度和格式化輸出

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class Main {
    public static void main(String[] args) {
        //保留兩位小數(shù)
        DecimalFormat df1 = new DecimalFormat("0.00"); 
        DecimalFormat df2 = new DecimalFormat("#.##");
        //0.00表示沒數(shù)字位置用0補(bǔ)齊,#。##代表有就有沒有就沒有
        System.out.println(df1.format(0.156));
        System.out.println(df2.format(0.156));
        //高精度實(shí)數(shù)除法
        MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN); //必須設(shè)置精度
        //ROUND_HALF_UP: 遇到0.5的情況時(shí)往上近似,例: 1.5 -> 2
        //ROUND_HALF_DOWN : 遇到0.5的情況時(shí)往下近似,例: 1.5 -> 1
        BigDecimal a = BigDecimal.valueOf(5.16545213);
        BigDecimal b = BigDecimal.valueOf(1.512345);
        BigDecimal ans = a.divide(b, mc); //高精度整數(shù)不用設(shè)置精度,實(shí)數(shù)必須要
        System.out.println(ans);
        System.out.println(df1.format(ans));
    }
}

答案

0.16

0.16

3.415524983

3.42

BigDecimal的用法詳解

保留兩位小數(shù),四舍五入,數(shù)字格式化,科學(xué)計(jì)數(shù)法轉(zhuǎn)數(shù)字,數(shù)字里的逗號(hào)處理

Java在java.math包中提供的API類BigDecimal,用來對(duì)超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算。雙精度浮點(diǎn)型變量double可以處理16位有效數(shù)。

在實(shí)際應(yīng)用中,需要對(duì)更大或者更小的數(shù)進(jìn)行運(yùn)算和處理。float和double只能用來做科學(xué)計(jì)算或者是工程計(jì)算,在商業(yè)計(jì)算中要用java.math.BigDecimal。

BigDecimal所創(chuàng)建的是對(duì)象,我們不能使用傳統(tǒng)的+、-、*、/等算術(shù)運(yùn)算符直接對(duì)其對(duì)象進(jìn)行數(shù)學(xué)運(yùn)算,而必須調(diào)用其相對(duì)應(yīng)的方法。方法中的參數(shù)也必須是BigDecimal的對(duì)象。構(gòu)造器是類的特殊方法,專門用來創(chuàng)建對(duì)象,特別是帶有參數(shù)的對(duì)象。

構(gòu)造器描述

  • BigDecimal(int) 創(chuàng)建一個(gè)具有參數(shù)所指定整數(shù)值的對(duì)象。
  • BigDecimal(double) 創(chuàng)建一個(gè)具有參數(shù)所指定雙精度值的對(duì)象。
  • BigDecimal(long) 創(chuàng)建一個(gè)具有參數(shù)所指定長(zhǎng)整數(shù)值的對(duì)象。
  • BigDecimal(String) 創(chuàng)建一個(gè)具有參數(shù)所指定以字符串表示的數(shù)值的對(duì)象。

方法描述

  • add(BigDecimal) BigDecimal對(duì)象中的值相加,然后返回這個(gè)對(duì)象。
  • subtract(BigDecimal) BigDecimal對(duì)象中的值相減,然后返回這個(gè)對(duì)象。
  • multiply(BigDecimal) BigDecimal對(duì)象中的值相乘,然后返回這個(gè)對(duì)象。
  • divide(BigDecimal) BigDecimal對(duì)象中的值相除,然后返回這個(gè)對(duì)象。
  • toString() 將BigDecimal對(duì)象的數(shù)值轉(zhuǎn)換成字符串。
  • doubleValue() 將BigDecimal對(duì)象中的值以雙精度數(shù)返回。
  • floatValue() 將BigDecimal對(duì)象中的值以單精度數(shù)返回。
  • longValue() 將BigDecimal對(duì)象中的值以長(zhǎng)整數(shù)返回。
  • intValue() 將BigDecimal對(duì)象中的值以整數(shù)返回。

常用方法

保留兩位小數(shù)

/** 
 * 保留兩位小數(shù) 
 */  
@org.junit.Test  
public void formatTest() {  
    double num=13.154215;  
  
    //方式一  
    DecimalFormat df1 = new DecimalFormat("0.00");  
    String str = df1.format(num);  
    System.out.println(str);  //13.15  
  
    //方式二  
    // #.00 表示兩位小數(shù) #.0000四位小數(shù)  
    DecimalFormat df2 =new DecimalFormat("#.00");  
    String str2 =df2.format(num);  
    System.out.println(str2);  //13.15  
  
    //方式三  
    //%.2f %. 表示 小數(shù)點(diǎn)前任意位數(shù)   2 表示兩位小數(shù) 格式后的結(jié)果為f 表示浮點(diǎn)型  
    String result = String.format("%.2f", num);  
    System.out.println(result);  //13.15  
}  

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用synchronized實(shí)現(xiàn)互斥鎖功能示例

    Java使用synchronized實(shí)現(xiàn)互斥鎖功能示例

    這篇文章主要介紹了Java使用synchronized實(shí)現(xiàn)互斥鎖功能,結(jié)合實(shí)例形式分析了Java使用synchronized互斥鎖功能簡(jiǎn)單實(shí)現(xiàn)方法與操作技巧,需要的朋友可以參考下
    2020-05-05
  • 解決idea中@Data標(biāo)簽getset不起作用的問題

    解決idea中@Data標(biāo)簽getset不起作用的問題

    這篇文章主要介紹了解決idea中@Data標(biāo)簽getset不起作用的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringCloud實(shí)現(xiàn)基于RabbitMQ消息隊(duì)列的詳細(xì)步驟

    SpringCloud實(shí)現(xiàn)基于RabbitMQ消息隊(duì)列的詳細(xì)步驟

    在Spring Cloud框架中,我們可以利用RabbitMQ實(shí)現(xiàn)強(qiáng)大而可靠的消息隊(duì)列系統(tǒng),本篇將詳細(xì)介紹如何在Spring Cloud項(xiàng)目中集成RabbitMQ,并創(chuàng)建一個(gè)簡(jiǎn)單的消息隊(duì)列,感興趣的朋友一起看看吧
    2024-03-03
  • Java去掉字符串最后一個(gè)逗號(hào)的方法

    Java去掉字符串最后一個(gè)逗號(hào)的方法

    Java中去掉字符串的最后一個(gè)逗號(hào)有多種實(shí)現(xiàn)方法,不同的方法適用于不同的場(chǎng)景,本文通過實(shí)例代碼介紹Java去掉字符串最后一個(gè)逗號(hào)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-12-12
  • iReport使用教程(示例教程)

    iReport使用教程(示例教程)

    在使用ireport的過程中,因?yàn)楦鞣N功能都要百度,但是大家使用的例子又千差萬別讓人很苦惱,所以用一個(gè)簡(jiǎn)單例子貫穿的展示一下ireport的常見功能
    2021-10-10
  • Spring?Cloud?Eureka基礎(chǔ)應(yīng)用及原理

    Spring?Cloud?Eureka基礎(chǔ)應(yīng)用及原理

    這篇文章主要介紹了Spring?Cloud?Eureka基礎(chǔ)應(yīng)用,Eureka?Client中內(nèi)置一個(gè)負(fù)載均衡器,用來進(jìn)行基本的負(fù)載均衡,下面我們將通過搭建一個(gè)簡(jiǎn)單的Eureka例子來了解Eureka的運(yùn)作原理,感興趣的朋友一起看看吧
    2022-05-05
  • springboot整合shiro實(shí)現(xiàn)登錄驗(yàn)證授權(quán)的過程解析

    springboot整合shiro實(shí)現(xiàn)登錄驗(yàn)證授權(quán)的過程解析

    這篇文章主要介紹了springboot整合shiro實(shí)現(xiàn)登錄驗(yàn)證授權(quán),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Java實(shí)現(xiàn)訂單超時(shí)未支付自動(dòng)取消的8種方法總結(jié)

    Java實(shí)現(xiàn)訂單超時(shí)未支付自動(dòng)取消的8種方法總結(jié)

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)訂單超時(shí)未支付自動(dòng)取消功能的8種不同方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08
  • Java中HashMap和HashTable區(qū)別

    Java中HashMap和HashTable區(qū)別

    HashMap和Hashtable都是Java常見的基于哈希表實(shí)現(xiàn)的Map接口的實(shí)現(xiàn)類,本文主要介紹了Java中HashMap和HashTable區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • @Value如何獲取yml和properties配置參數(shù)

    @Value如何獲取yml和properties配置參數(shù)

    這篇文章主要介紹了@Value如何獲取yml和properties配置參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論