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

將BigDecimal轉(zhuǎn)成字符串為科學(xué)計(jì)數(shù)法的踩坑記錄

 更新時(shí)間:2022年06月18日 16:19:27   作者:滿(mǎn)腦子代碼的祝大朋  
這篇文章主要介紹了將BigDecimal轉(zhuǎn)成字符串為科學(xué)計(jì)數(shù)法的踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

BigDecimal轉(zhuǎn)字符串為科學(xué)計(jì)數(shù)法踩坑

場(chǎng)景

在開(kāi)發(fā)工程中,在金額方面都會(huì)定義bigdecimal類(lèi)型,當(dāng)然有時(shí)候也需要將金額轉(zhuǎn)成字符串。我們可能會(huì)很自然的寫(xiě)成 金額.toString()方法如:

costBudgetEntity.getInitTotalAmount().toString()//獲取初始預(yù)算金額的字符串

當(dāng)然當(dāng)金額過(guò)小時(shí),轉(zhuǎn)成字符串,是沒(méi)有任何問(wèn)題的,但當(dāng)金額數(shù)值較大時(shí),轉(zhuǎn)成的字符串時(shí)科學(xué)計(jì)數(shù)法格式,這往往不是我們想要的格式。

因此

costBudgetEntity.getInitTotalAmount().toString()//金額為12000000輸出的結(jié)果為1.2E+7這種的字符串 

然后根據(jù)這種字符串,無(wú)法做一些想要的業(yè)務(wù)處理

解決

查看BigDecimal的API后,得知有個(gè)toPlainString()方法, 此方法的返回類(lèi)型為String ,它返回此BigDecimal對(duì)象的字符串表示形式,不需要任何指數(shù)。

/**
* Returns a string representation of this {@code BigDecimal}
* without an exponent field.  For values with a positive scale,
* the number of digits to the right of the decimal point is used
* to indicate scale.  For values with a zero or negative scale,
* the resulting string is generated as if the value were
* converted to a numerically equal value with zero scale and as
* if all the trailing zeros of the zero scale value were present
* in the result.
*
* The entire string is prefixed by a minus sign character '-'
* (<tt>'&#92;u002D'</tt>) if the unscaled value is less than
* zero. No sign character is prefixed if the unscaled value is
* zero or positive.
*
* Note that if the result of this method is passed to the
* {@linkplain #BigDecimal(String) string constructor}, only the
* numerical value of this {@code BigDecimal} will necessarily be
* recovered; the representation of the new {@code BigDecimal}
* may have a different scale.  In particular, if this
* {@code BigDecimal} has a negative scale, the string resulting
* from this method will have a scale of zero when processed by
* the string constructor.
*
* (This method behaves analogously to the {@code toString}
* method in 1.4 and earlier releases.)
*
* @return a string representation of this {@code BigDecimal}
* without an exponent field.
* @since 1.5
* @see #toString()
* @see #toEngineeringString()
*/
public String toPlainString() {
    if(scale==0) {
        if(intCompact!=INFLATED) {
            return Long.toString(intCompact);
        } else {
            return intVal.toString();
        }
    }
    if(this.scale<0) { // No decimal point
        if(signum()==0) {
            return "0";
        }
        int tailingZeros = checkScaleNonZero((-(long)scale));
        StringBuilder buf;
        if(intCompact!=INFLATED) {
            buf = new StringBuilder(20+tailingZeros);
            buf.append(intCompact);
        } else {
            String str = intVal.toString();
            buf = new StringBuilder(str.length()+tailingZeros);
            buf.append(str);
        }
        for (int i = 0; i < tailingZeros; i++)
            buf.append('0');
        return buf.toString();
    }
    String str ;
    if(intCompact!=INFLATED) {
        str = Long.toString(Math.abs(intCompact));
    } else {
        str = intVal.abs().toString();
    }
    return getValueString(signum(), str, scale);
}

此時(shí),我們?cè)赿ebug查看:

costBudgetEntity.getInitTotalAmount().toPlainString() //金額為12000000輸出的結(jié)果為12000000字符串

案例演示

BigDecimal變科學(xué)計(jì)數(shù)法

阿里OTS存儲(chǔ)BigDecimal

當(dāng)BigDecimal數(shù)據(jù)大于9,999,999時(shí)

后就變成科學(xué)計(jì)數(shù)法了。

如10,000,000 就變?yōu)?.0E7

接收端應(yīng)該注意

也需要用BigDecimal,要是使用Integer接收,就可能出現(xiàn)異常

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

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)Thymeleaf驗(yàn)證碼生成

    SpringBoot實(shí)現(xiàn)Thymeleaf驗(yàn)證碼生成

    本文使用SpringBoot實(shí)現(xiàn)Thymeleaf驗(yàn)證碼生成,使用后臺(tái)返回驗(yàn)證碼圖片,驗(yàn)證碼存到session中后端實(shí)現(xiàn)校驗(yàn),前端只展示驗(yàn)證碼圖片。感興趣的可以了解下
    2021-05-05
  • java中統(tǒng)一返回前端格式及統(tǒng)一結(jié)果處理返回詳解

    java中統(tǒng)一返回前端格式及統(tǒng)一結(jié)果處理返回詳解

    這篇文章主要介紹了統(tǒng)一結(jié)果處理的重要性,以及如何在SpringBoot項(xiàng)目中定義和使用統(tǒng)一結(jié)果返回類(lèi),通過(guò)構(gòu)造器私有化和靜態(tài)方法ok、error,提供了成功和失敗的統(tǒng)一響應(yīng)格式,需要的朋友可以參考下
    2025-02-02
  • 淺談java中異步多線(xiàn)程超時(shí)導(dǎo)致的服務(wù)異常

    淺談java中異步多線(xiàn)程超時(shí)導(dǎo)致的服務(wù)異常

    下面小編就為大家?guī)?lái)一篇淺談java中異步多線(xiàn)程超時(shí)導(dǎo)致的服務(wù)異常。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • springboot從application.properties中注入list,?map方式

    springboot從application.properties中注入list,?map方式

    這篇文章主要介紹了springboot從application.properties中注入list,map方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • idea 創(chuàng)建properties配置文件的步驟

    idea 創(chuàng)建properties配置文件的步驟

    這篇文章主要介紹了idea 創(chuàng)建properties配置文件的步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • FastJson時(shí)間格式化問(wèn)題避坑經(jīng)驗(yàn)分享

    FastJson時(shí)間格式化問(wèn)題避坑經(jīng)驗(yàn)分享

    這篇文章主要為大家介紹了FastJson時(shí)間格式化問(wèn)題避坑經(jīng)驗(yàn)分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java?IO流之StringWriter和StringReader用法分析

    Java?IO流之StringWriter和StringReader用法分析

    這篇文章主要介紹了Java?IO流之StringWriter和StringReader用法分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式總結(jié)

    java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式總結(jié)

    ArrayList是Java中的一個(gè)類(lèi),它是Java集合框架中的一部分,用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,下面這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 淺析java class 文件

    淺析java class 文件

    以下是對(duì)java中的class文件進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • SpringBoot中的響應(yīng)式web應(yīng)用詳解

    SpringBoot中的響應(yīng)式web應(yīng)用詳解

    這篇文章主要介紹了SpringBoot中的響應(yīng)式web應(yīng)用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

从化市| 蒲江县| 永年县| 万载县| 麻城市| 十堰市| 黄石市| 临江市| 宁国市| 东源县| 崇明县| 榆树市| 常宁市| 陈巴尔虎旗| 石渠县| 旺苍县| 山阴县| 博白县| 大新县| 长寿区| 杭锦后旗| 尤溪县| 阿克| 台中县| 浦东新区| 开江县| 漳州市| 南康市| 安岳县| 东至县| 积石山| 金堂县| 林甸县| 霍城县| 肥西县| 喀什市| 万源市| 河东区| 华坪县| 侯马市| 亚东县|