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

java.text.DecimalFormat用法詳解

 更新時(shí)間:2018年03月01日 11:40:04   作者:AAA啊哈  
這篇文章主要為大家詳細(xì)介紹了java.text.DecimalFormat用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

簡(jiǎn)要

DecimalFormat 的 pattern 都包含著 正負(fù)子 pattern ,例如 “#,##0.00;(#,##0.00)”:

/**
 * Created by Shuai on 2016/7/11.
 */
public class Main {
  public static void main(String[] args) {

    // 正值
    BigDecimal bigDecimal = BigDecimal.valueOf(-12211151515151.541666);

    // 負(fù)值
    BigDecimal bigDecimal2 = BigDecimal.valueOf(12211151515151.541666);
    String pattern = "#,##0.00;(#,##0.00)";
    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    decimalFormat.format(bigDecimal);
    System.out.println(decimalFormat.format(bigDecimal));
    System.out.print(decimalFormat.format(bigDecimal2));
  }
}

輸出:

(12,211,151,515,151.54)
12,211,151,515,151.54

每一個(gè)子 pattern 都由前綴,數(shù)值部分和后綴組成,像上面的正負(fù) pattern 只能是前綴和后綴不同, 數(shù)值部分默認(rèn)取正 pattern 的,這就意味著 "#,##0.0#;(#)" 就等同與 "#,##0.0#;(#,##0.0#)" 。;后面的負(fù)pattern是可選的,可以沒(méi)有,如果沒(méi)有,負(fù)值會(huì)以默認(rèn)的形式顯示(在大多數(shù)地區(qū)前綴是“-”),例如 -12,211,151,515,151.54。有趣的是 對(duì)于 0 值,都會(huì)取正 pattern:

public class Main {
  public static void main(String[] args) {

    BigDecimal bigDecimal = BigDecimal.valueOf(-0.00);
    BigDecimal bigDecimal2 = BigDecimal.valueOf(0.00);
    String pattern = "0.00;(0.00)";
    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    decimalFormat.format(bigDecimal);
    System.out.println(decimalFormat.format(bigDecimal));
    System.out.print(decimalFormat.format(bigDecimal2));
  }
}

輸出:

0.00
0.00

DecimalFormat 可以直接解析字符串:

System.out.print(decimalFormat.parse(",,,1,515,115.26262", new ParsePosition(0)));

輸出:

1515115.26262

可以看到,decimalFormat.parse 方法都自動(dòng)去掉了.之前的,這里要注意的是,解析的字符串第一個(gè)字符必須是數(shù)字,或者,后緊跟著數(shù)字,否則會(huì)拋出異?;蛘呓馕鰹?span style="color: #800000">null。parse 的第二個(gè)參數(shù)指定了解析的第一個(gè)字符的位置,上面的例子 位置 0,1,2,3 都是從1開(kāi)始解析,4,5都是從5開(kāi)始解析,即如果取,位則由后面緊挨著的數(shù)字補(bǔ)位。如果.前面出現(xiàn)了除,和數(shù)字外其他的字符則parse解析到這個(gè)字符的前一位,或者.后面出現(xiàn)了除數(shù)字外的其他字符(包括, )則pares 解析到這個(gè)字符的前一位。

如果 pattern 包含多組個(gè)數(shù)不同的字符,例如:"#,##,###,####", 那它使用的是組后一組,即"#,##,###,####" == "######,####" == "##,####,####"

public class Main {
  public static void main(String[] args) {

    BigDecimal bigDecimal = BigDecimal.valueOf(65652323265.626262);
    String pattern = "#,##,###,###0.00";
    String pattern2 = "######,###0.00";
    String pattern3 = "##,####,###0.00";
    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    System.out.println(decimalFormat.format(bigDecimal));
    decimalFormat.applyPattern(pattern2);
    System.out.println(decimalFormat.format(bigDecimal));
    decimalFormat.applyPattern(pattern3);
    System.out.println(decimalFormat.format(bigDecimal));
  }
}

輸出:

656,5232,3265.63
656,5232,3265.63
656,5232,3265.63

Special Pattern Characters

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

1234 可以表示為 1.234 x 10^3,pattern 為 “0.###E0”,就會(huì)把 1234 格式化為 1.234E3。

整數(shù)的個(gè)數(shù):

  • 如果整數(shù)位的最大個(gè)數(shù)大于最小個(gè)數(shù)而且大于1,就會(huì)強(qiáng)制指數(shù)是整數(shù)位最大個(gè)數(shù)的倍數(shù),整數(shù)位最小個(gè)數(shù)視為1。例如:”##0.#####E0”, 整數(shù)為最大個(gè)數(shù)是3,最小個(gè)數(shù)是1,則指數(shù)必須是3的倍數(shù),而且,最小要有1位整數(shù)。12345 格式化為 “12.345E3”, 123456 格式化為 “123.456E3”, 123 格式化為 “123E0”(整數(shù)位必須至少有1位,且不能是0,指數(shù)為3的倍數(shù))。
  • 否則,由整數(shù)的最小個(gè)數(shù)來(lái)調(diào)整指數(shù),”00.###E0” 格式化 0.00123 為”12.3E-4”。

有效數(shù)字個(gè)數(shù)由整數(shù)位的最小個(gè)數(shù)與小數(shù)位的最大個(gè)數(shù)之和得出,例如 “##0.##E0” 整數(shù)位最小個(gè)數(shù)為1,小數(shù)位最大個(gè)數(shù)為2,則有效個(gè)數(shù)是3,格式化 12345 為 “12.3E3”。除有效個(gè)數(shù)外,其他省略。

數(shù)值舍入規(guī)則

可以通過(guò)方法 decimalFormat.setRoundingMode 來(lái)設(shè)置 RoundingMode,默認(rèn)使用的是RoundingMode.HALF_EVEN.

它不同步,如果多線(xiàn)程訪問(wèn),要自己實(shí)現(xiàn)同步

建議為每個(gè)線(xiàn)程創(chuàng)建單獨(dú)的格式實(shí)例。如果多個(gè)線(xiàn)程同時(shí)訪問(wèn)一個(gè)格式,它必須在外部同步。

Example

// Print out a number using the localized number, integer, currency,
 // and percent format for each locale
 Locale[] locales = NumberFormat.getAvailableLocales();
 double myNumber = -1234.56;
 NumberFormat form;
 for (int j=0; j<4; ++j) {
   System.out.println("FORMAT");
   for (int i = 0; i < locales.length; ++i) {
     if (locales[i].getCountry().length() == 0) {
      continue; // Skip language-only locales
     }
     System.out.print(locales[i].getDisplayName());
     switch (j) {
     case 0:
       form = NumberFormat.getInstance(locales[i]); break;
     case 1:
       form = NumberFormat.getIntegerInstance(locales[i]); break;
     case 2:
       form = NumberFormat.getCurrencyInstance(locales[i]); break;
     default:
       form = NumberFormat.getPercentInstance(locales[i]); break;
     }
     if (form instanceof DecimalFormat) {
       System.out.print(": " + ((DecimalFormat) form).toPattern());
     }
     System.out.print(" -> " + form.format(myNumber));
     try {
       System.out.println(" -> " + form.parse(form.format(myNumber)));
     } catch (ParseException e) {}
   }
 }

參考:原文地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot集成Spring Security用JWT令牌實(shí)現(xiàn)登錄和鑒權(quán)的方法

    SpringBoot集成Spring Security用JWT令牌實(shí)現(xiàn)登錄和鑒權(quán)的方法

    這篇文章主要介紹了SpringBoot集成Spring Security用JWT令牌實(shí)現(xiàn)登錄和鑒權(quán)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java通過(guò)Process類(lèi)Runtime.getRuntime().exec()執(zhí)行bat腳本程序

    Java通過(guò)Process類(lèi)Runtime.getRuntime().exec()執(zhí)行bat腳本程序

    用Java編寫(xiě)應(yīng)用時(shí),有時(shí)需要在程序中調(diào)用另一個(gè)現(xiàn)成的可執(zhí)行程序或系統(tǒng)命令,這篇文章主要給大家介紹了關(guān)于Java如何通過(guò)Process類(lèi)Runtime.getRuntime().exec()執(zhí)行bat腳本程序的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • java中map和對(duì)象互轉(zhuǎn)工具類(lèi)的實(shí)現(xiàn)示例

    java中map和對(duì)象互轉(zhuǎn)工具類(lèi)的實(shí)現(xiàn)示例

    這篇文章主要介紹了java中map和對(duì)象互轉(zhuǎn)工具類(lèi)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java實(shí)現(xiàn)OTP(動(dòng)態(tài)口令)服務(wù)

    Java實(shí)現(xiàn)OTP(動(dòng)態(tài)口令)服務(wù)

    OTP是一種動(dòng)態(tài)生成的短時(shí)有效密碼,用于身份驗(yàn)證,通常在登錄或執(zhí)行敏感操作時(shí)提供額外的安全保障,本文主要介紹了Java實(shí)現(xiàn)OTP(動(dòng)態(tài)口令)服務(wù),感興趣的可以了解一下
    2025-03-03
  • Spring?Boot應(yīng)用程序中如何使用Keycloak詳解

    Spring?Boot應(yīng)用程序中如何使用Keycloak詳解

    這篇文章主要為大家介紹了Spring?Boot應(yīng)用程序中如何使用Keycloak詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Java并發(fā)編程之LongAdder執(zhí)行情況解析

    Java并發(fā)編程之LongAdder執(zhí)行情況解析

    這篇文章主要為大家介紹了Java并發(fā)編程之LongAdder執(zhí)行情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • AJAX Servlet實(shí)現(xiàn)數(shù)據(jù)異步交互的方法

    AJAX Servlet實(shí)現(xiàn)數(shù)據(jù)異步交互的方法

    本篇文章主要介紹了AJAX Servlet實(shí)現(xiàn)數(shù)據(jù)異步交互的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 快速入手IntelliJ IDEA基本配置

    快速入手IntelliJ IDEA基本配置

    IntelliJ IDEA是java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境,本篇主要介紹了對(duì)它的安裝、配置maven倉(cāng)庫(kù)、調(diào)試方法、常用的插件推薦、快捷鍵大全與常用快捷鍵說(shuō)明,感興趣的朋友一起看看吧
    2021-10-10
  • Spring連接Mysql數(shù)據(jù)庫(kù)全過(guò)程

    Spring連接Mysql數(shù)據(jù)庫(kù)全過(guò)程

    這篇文章主要介紹了Spring連接Mysql數(shù)據(jù)庫(kù)全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • spring動(dòng)態(tài)注冊(cè)bean?AOP失效原理解析

    spring動(dòng)態(tài)注冊(cè)bean?AOP失效原理解析

    這篇文章主要為大家介紹了spring動(dòng)態(tài)注冊(cè)bean使AOP失效原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論

谢通门县| 洛阳市| 万年县| 开封县| 碌曲县| 绵竹市| 友谊县| 灌阳县| 新宁县| 赤水市| 铜梁县| 遂溪县| 迭部县| 綦江县| 钟山县| 平度市| 江门市| 名山县| 桑植县| 扬州市| 谢通门县| 阿克苏市| 南皮县| 林西县| 姚安县| 西峡县| 五莲县| 三门县| 来安县| 云龙县| 孝感市| 唐山市| 浏阳市| 苗栗县| 福建省| 喀什市| 德兴市| 金寨县| 锦屏县| 颍上县| 布拖县|