最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明

 更新時間:2021年10月12日 11:10:46   作者:Android濤  
這篇文章主要介紹了DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

先來介紹一下“0”和“#”的區(qū)別

1. 以“0”補(bǔ)位時

如果數(shù)字少了,就會補(bǔ)“0”,小數(shù)和整數(shù)都會補(bǔ);

如果數(shù)字多了,就切掉,但只切小數(shù)的末尾,整數(shù)不能切;

同時被切掉的小數(shù)位會進(jìn)行四舍五入處理。

2. 以“#”補(bǔ)位時

如果數(shù)字少了,則不處理,不會補(bǔ)“0”,也不會補(bǔ)“#”;

如果數(shù)字多了,就切掉,但只切小數(shù)的末尾,整數(shù)不能切;

同時被切掉的小數(shù)位會進(jìn)行四舍五入處理。

public class PriceUtil { 
    public static String decimalFormat(float value) {
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(value);
    }
 
    public static String decimalFormat(double value) {
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(value);
    }
 
    public static String decimalFormat(String value) {
        if(value==null||value.isEmpty())
            return "0.00";
        double d = Double.parseDouble(value);
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(d);
    } 
}

小結(jié)一下

1. “0”強(qiáng)制按格式對齊,“#”最充足的情況下以這樣的格式對齊;

2. “#”適用的場景是當(dāng)小數(shù)位超過兩位時,只顯示兩位,但只有一位或沒有,則不需要補(bǔ)“0”;

3. 整數(shù)位用多個“#”沒有意義。

大家想用什么樣的格式,可以自己去組裝。

DecimalFormat 數(shù)據(jù)四舍五入格式化處理

最近的開發(fā)中,被測試的小伙伴告知,相同四舍五入處理邏輯的數(shù)據(jù)有一個有問題。當(dāng)時的自己是懵逼的,我的處理方式是這樣的,業(yè)務(wù)要求是四舍五入保留兩位小數(shù):

DecimalFormat d = new DecimalFormat("#0.00");
d.format(0.145d);

這樣的數(shù)據(jù),期望結(jié)果是0.15,但是實(shí)際的結(jié)果是0.14,,,,,為什么呢?為什么呢?

問題探索

對此,各種尋找原因,終于有點(diǎn)眉目,這里做大概的說明,詳細(xì)的原因小伙伴們可以參考這篇文章

1.DecimalFormat 格式化數(shù)據(jù),如果不指定方式,默認(rèn)為HALF_EVEN,實(shí)際應(yīng)該是HALF_UP;(HALF_EVEN 被舍位是5(如保留兩位小數(shù)的2.115),后面還有非0值進(jìn)1(如保留兩位小數(shù)的2.11500001 格式化為2.12),5后面沒有數(shù)字或者都是0時,前面是偶數(shù)則舍,是奇數(shù)則進(jìn)1,目標(biāo)是讓被舍前一位變?yōu)榕紨?shù)。HALF_UP:真正的四舍五入)

2. 使用BigDecimal時,參數(shù)盡量傳入字符串,要比傳入double精準(zhǔn).因?yàn)閐ouble的精度容易丟失;

結(jié)果

為了不大幅度的改動代碼,所以最后將數(shù)據(jù)格式化改為使用BigDecimal類型:

DecimalFormat d = new DecimalFormat("#0.00");
d.setRoundingMode(RoundingMode.HALF_UP);
Double.valueOf(d.format(new BigDecimal(String.valueOf(0.145d))));

因?yàn)闀r間問題,描述的比較簡單,以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot?的?web?類型推斷詳解

    SpringBoot?的?web?類型推斷詳解

    這篇文章主要介紹了SpringBoot?的?web?類型推斷詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • springboot中@ConfigurationProperties無效果的解決方法

    springboot中@ConfigurationProperties無效果的解決方法

    本文主要介紹了springboot中@ConfigurationProperties無效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn)

    Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn)

    這篇文章主要介紹了Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 聊聊mybatis sql的括號問題

    聊聊mybatis sql的括號問題

    這篇文章主要介紹了mybatis sql的括號問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring RestTemplate基本使用介紹

    Spring RestTemplate基本使用介紹

    這篇文章主要介紹了Spring RestTemplate基本使用介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 解決maven沒有打包xml文件的問題

    解決maven沒有打包xml文件的問題

    這篇文章主要介紹了解決maven沒有打包xml文件的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 淺談spring注解之@profile

    淺談spring注解之@profile

    這篇文章主要介紹了淺談spring注解之@profile,@profile通過配置來改變參數(shù),這里整理的詳細(xì)的用法,有興趣的可以了解一下
    2017-10-10
  • SpringBoot接收參數(shù)所有方式總結(jié)

    SpringBoot接收參數(shù)所有方式總結(jié)

    這篇文章主要介紹了SpringBoot接收參數(shù)所有方式總結(jié),文中通過代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • Java算法之時間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算

    Java算法之時間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算

    這篇文章主要介紹了Java算法之時間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • hadoop?全面解讀自定義分區(qū)

    hadoop?全面解讀自定義分區(qū)

    Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲
    2022-02-02

最新評論

武功县| 德兴市| 隆回县| 筠连县| 湖北省| 姜堰市| 昌平区| 西华县| 墨竹工卡县| 桂东县| 大方县| 龙陵县| 宝清县| 鄄城县| 英山县| 南召县| 隆回县| 津市市| 巢湖市| 微山县| 靖江市| 邢台县| 琼结县| 西安市| 茶陵县| 阜新市| 广河县| 福海县| 关岭| 湾仔区| 昔阳县| 玉门市| 韶山市| 娄烦县| 桂东县| 东光县| 辉县市| 兰州市| 芦溪县| 民丰县| 武义县|