色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

BigDecimal實際開發的三坑是什么

汽車電子技術 ? 來源:程序猿知秋 ? 作者:知秋 ? 2023-02-16 14:39 ? 次閱讀

坑1:初始化使用double類型數據

public class TestBigDecimal {
    public static void main(String[] args){
        BigDecimal b1=new BigDecimal(0.22);
        BigDecimal b2=new BigDecimal("0.22");
        System.out.println("b1的值:"+b1);
        System.out.println("b2的值:"+b2);
    }
}

結果

b1的值:

0.2200000000000000011102230246251565404236316680908203125

b2的值:0.22

原因:

構造方法參數為double類型有一定的不可預知性,表面上看是0.22,實際上是0.2200000000000000011102230246251565404236316680908203125,0.22在java中無法準確的表示為double

解決方案:

1.采用String 類型的構造參數。

2.如果必須要使用double,則可使用Double.toString(double) 方法轉換成String, 再采用Bigdecimal的構造函數.

坑2:除法計算

public static void t1(){
    BigDecimal b1=new BigDecimal("10");
    BigDecimal b2=new BigDecimal("3");
    System.out.println(b1.divide(b2).setScale(2,BigDecimal.ROUND_HALF_UP));
}

結果:

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result

原因:

當遇到除不盡的情況時,會報以上錯誤

解決方案:

System.out.println(b1.divide(b2,2,BigDecimal.ROUND_HALF_UP));

坑3:equals方法

public static void t2(){
    BigDecimal b1=new BigDecimal("0.0");
    BigDecimal b2=BigDecimal.ZERO;
    System.out.println(b1.equals(b2));
}

結果:

false

原因:

BigDecimal 的equals 方法不僅僅是比較值,還會比較scale的位數是否相等,而Bigdecimal.ZERO的scale是0,所以為 false

解決方案:

使用compareTo方法. System.out.println(b1.compareTo(b2)==0)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 參數
    +關注

    關注

    11

    文章

    1842

    瀏覽量

    32303
  • Doubler
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7201
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4739
收藏 人收藏

    評論

    相關推薦

    R128點屏踩筆記

    本文所整理的R128點屏踩筆記均是在參考以下應用開發案例進行屏幕適配時遇到的實際開發問題,涵蓋了屏幕花屏、屏幕白屏、LVGL顯示顏色錯誤等常見問題的解決方法。
    的頭像 發表于 12-03 10:17 ?1395次閱讀
    R128點屏踩<b class='flag-5'>坑</b>筆記

    死創業者的硬件產品——“十大

    死創業者的硬件產品——“十大”第一:錯把產品原型當批量生產第二:以為可以修補bug;第
    發表于 11-14 15:59

    NodeMCU開發板踩經歷分享

    寫在前面今天入手了一個NodeMCU的板子,準備學習一下物聯網相關的知識。不過由于博主學藝不精,在第一步燒寫固件上就踩了,所以就想著把自己的踩經歷寫出來分享給大家,希望能有一些幫助~ 材料準備硬件:NodeMCU開發板*1(
    發表于 11-01 07:55

    mongoose開發中遇到的及解決方案

    1. 本文不對mongoose的功能作陳述,只記錄下自己開發中遇到的,及解決方案。嵌入了mongoose的代碼編譯通過,在調試運行(gdb)時候,卻發生了段錯誤(Segmentation fault),如下所示:...
    發表于 12-16 06:56

    大學時光、單片機開發,嵌入式網站推薦

    大學時光、單片機開發,嵌入式網站推薦
    發表于 11-20 11:51 ?8次下載
    入<b class='flag-5'>坑</b>大學時光、單片機<b class='flag-5'>開發</b>,嵌入式網站推薦

    關于藍橋杯單片機開發板矩陣鍵盤的一些

    關于藍橋杯單片機開發板矩陣鍵盤的一些
    發表于 11-23 17:36 ?2次下載
    關于藍橋杯單片機<b class='flag-5'>開發</b>板矩陣鍵盤的一些<b class='flag-5'>坑</b>

    ESP-32開發歷程()ESP-IDF 定時器使用

    ESP-32開發歷程()ESP-IDF 定時器使用前言一、開發基礎二、定時器使用1.官方描述2.讀入數據總結ESP-32開發
    發表于 12-08 12:06 ?13次下載
    ESP-32<b class='flag-5'>開發</b>踩<b class='flag-5'>坑</b>歷程(<b class='flag-5'>三</b>)ESP-IDF 定時器使用

    BigDecimal使用失誤的原因分析

    BigDecimal 自身也提供了很多構造器方法,這些構造器方法使用不當可能會造成不必要的麻煩甚至是金額損失,從而引起事故資損。
    的頭像 發表于 07-10 14:35 ?975次閱讀

    軟件開發外包有哪些要注意?

    提起軟件開發外包,大家并不陌生,因為很多企業已經選擇了軟件外包,但是有人會說軟件開發外包就是個,千萬別選擇軟件外包。 ? 其實軟件外包是沒有問題的,問題出在選擇的軟件開發外包公司上面
    的頭像 發表于 10-11 18:36 ?1448次閱讀

    bigdecimal轉string類型

    BigDecimal轉換為String類型是在Java編程中常常遇到的一個問題。BigDecimal是Java中用于表示高精度十進制數的類,而String則是用于表示文本字符串的數據類型。在某些
    的頭像 發表于 11-30 11:09 ?6441次閱讀

    怎么把bigdecimal轉成string

    BigDecimal轉換為String是一項常見的任務,在Java的開發中經常會涉及到將數值進行格式化,并在不同的環境中傳遞。本文將詳解以下幾個方面的內容: 什么是BigDecimal
    的頭像 發表于 11-30 11:11 ?1396次閱讀

    bigdecimal轉string類型避免空指針

    在Java中,BigDecimal是用于處理高精度數字計算的類。它提供了一種有效的方法來避免使用浮點數的精確度損失問題。然而,在將BigDecimal對象轉換為String類型時,需要特別小心以避
    的頭像 發表于 11-30 11:12 ?2720次閱讀

    bigdecimal轉字符串保留兩位小數

    BigDecimals是Java中用于表示任意精度的十進制數的類。在許多應用程序中,可能需要將一個BigDecimal轉換為字符串并保留兩位小數。在本文中,我們將探討如何使用BigDecimal
    的頭像 發表于 11-30 11:18 ?4486次閱讀

    bigdecimal的加減乘除java

    BigDecimal是Java中提供的一個用于精確計算的類,它可以實現浮點數的精確加減乘除運算,避免了在使用浮點數進行計算時可能出現的舍入誤差。 首先,我們需要明確一點,浮點數在計算機中是以二進制
    的頭像 發表于 11-30 11:19 ?1486次閱讀

    bigdecimal是什么數據類型

    BigDecimal是Java編程語言中的一個類,用于表示任意精度的十進制數。它是在數值計算方面提供更高精度和更多功能的一個解決方案。常規的浮點數類型(如float和double)有精度限制,可能會
    的頭像 發表于 11-30 11:21 ?3125次閱讀
    主站蜘蛛池模板: 久久中文字幕亚洲精品最新| 内射少妇36P亚洲区| 无码国产色欲XXXX视频| 久99视频精品免费观看福利| 国产 欧美 亚洲 日韩视频| 在线自拍亚洲视频欧美| 亚洲不卡视频在线观看| 色中色论坛网站| 披黑人猛躁10次高潮| 免费观看成人毛片| 久青草国产在线视频| 国产午夜在线观看视频播放| 成人18视频在线| 边做边爱免费视频| 超碰97人人做人人爱少妇| 99在线国产视频| 草莓视频cm.888tw| 大乳牛奶女在线观看| xxxx69中国| 国产精品高潮呻吟AV久久96 | 亚洲综合中文| 亚洲综合国产在不卡在线| 亚洲色欲H网在线观看| 亚洲AV美女成人网站P站| 小xav导航| 中文字幕人成人乱码亚洲影视S | 91精品视频网站| 最新无码国产在线视频2020| 2019午夜福合集不打码| 爱啪国产精品视频在线| 国产精品久久久久久久久99热| 国产成人免费全部网站| 久久精品观看| 啪啪羞羞GIF男女0OXX动态图| 受被三个攻各种道具PLAY| 一本道久在线综合色姐| 爱情岛aqdlttv| 久久国产免费| 歪歪漫画羞羞漫画国产| 4399亚洲AV无码V无码网站| 高hnp全肉|