国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

日常踩坑:Java中double類型出現(xiàn)科學計數(shù)法問題

這篇具有很好參考價值的文章主要介紹了日常踩坑:Java中double類型出現(xiàn)科學計數(shù)法問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景:在與銀行的項目對接中,近期客戶反饋支付失敗,錯誤信息是:“付款金額格式有問題”,經(jīng)過日志分析,發(fā)現(xiàn)客戶系統(tǒng)發(fā)送銀行系統(tǒng)時,付款金額以科學計數(shù)法的形式傳遞參數(shù)。

重現(xiàn):

public static void main(String[] args) {
       double amount = 13000000d;
       System.out.println("付款金額:"+amount);
}
//運行結(jié)果:
付款金額:1.3E7

經(jīng)過測試發(fā)現(xiàn),浮點數(shù)(double、float)當整數(shù)部分超過7位以上(不含7位),就會自動轉(zhuǎn)為科學計數(shù)法顯示。

解決:可以轉(zhuǎn)換為BigDecimal

public static void main(String[] args) {
        double amount = 13000001f;
        BigDecimal result = new BigDecimal(String.valueOf(amount)); //特別注意當構(gòu)造參數(shù)類型為double時結(jié)果有一定的不可預知性,可能會出現(xiàn)new BigDecimal(0.1)所創(chuàng)建的BigDecimal正好等于0.1,但實際等于0.100000000000005……的情況(具體可進一步自查了解),所以請轉(zhuǎn)換為String構(gòu)造方法
        System.out.println("付款金額:"+result);
}
//運行結(jié)果
付款金額:13000001

至此,便可解決浮點數(shù)在數(shù)據(jù)傳輸過程中出現(xiàn)科學計數(shù)法的情況!文章來源地址http://www.zghlxwxcb.cn/news/detail-596228.html

到了這里,關(guān)于日常踩坑:Java中double類型出現(xiàn)科學計數(shù)法問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 解決BigDecimal序列化科學計數(shù)法前端展示問題(大坑)

    解決BigDecimal序列化科學計數(shù)法前端展示問題(大坑)

    前言:在生產(chǎn)中出現(xiàn)一個問題,就是BigDecimal類型的字段在前端頁面展示變成科學計數(shù)法,通過排查,發(fā)現(xiàn)里面的坑還是挺多的,所以特意記錄下處理過程。Json序列化,不同項目中配置的都不一樣,有些項目是使用springboot里面自帶的jackson的,有些是使用fastjson處理,不同的序

    2024年01月18日
    瀏覽(16)
  • chatgpt賦能python:如何將Python中的數(shù)字轉(zhuǎn)換為科學計數(shù)法

    在Python編程中,我們經(jīng)常需要使用科學計數(shù)法來表示非常大或非常小的數(shù)字。在本文中,我們將介紹Python中將數(shù)字轉(zhuǎn)換為科學計數(shù)法的幾種方法。 Python可以使用字符串格式化操作符(%)來將數(shù)字轉(zhuǎn)換為科學計數(shù)法。以下是一個例子: 這將輸出數(shù)字 1.23e+09 。其中 %.2e 中的 %e 表

    2024年02月07日
    瀏覽(22)
  • C語言實例:輸出八進制,十進制,十六進制,指定位數(shù)整數(shù),帶符號整數(shù),科學計數(shù)法表示的整數(shù)

    直接使用printf函數(shù)輸出整數(shù)即可,例如: 輸出結(jié)果為: %d是printf函數(shù)的格式控制符,用于輸出整數(shù)。在printf函數(shù)中,%d會被替換成一個整數(shù)變量的值。例如,printf(“%d”, num)中%d將被num的值替換,從而輸出num的值作為整數(shù)。 使用printf函數(shù)的格式控制符可以輸出指定位數(shù)的整數(shù)

    2024年02月08日
    瀏覽(27)
  • JVM零基礎(chǔ)到高級實戰(zhàn)之對象存活算法引用計數(shù)法存在的特點分析

    JVM零基礎(chǔ)到高級實戰(zhàn)之對象存活算法引用計數(shù)法存在的特點分析 JVM零基礎(chǔ)到高級實戰(zhàn)之對象存活算法引用計數(shù)法存在的特點分析 優(yōu)點 引用計數(shù)收集器可以很快的執(zhí)行,交織在程序運行中。對程序需要不被長時間打斷的實時環(huán)境比較有利。 缺點 無法檢測出循環(huán)引用。如父對

    2024年02月15日
    瀏覽(21)
  • Java中如何將String類型轉(zhuǎn)為double類型

    在Java編程中,經(jīng)常需要在不同數(shù)據(jù)類型之間進行轉(zhuǎn)換。將String類型轉(zhuǎn)換為double類型是一種常見的轉(zhuǎn)換需求。Java提供了幾種方法來實現(xiàn)這種轉(zhuǎn)換,下面將介紹其中的兩種常用方法。 方法一:使用Double類的parseDouble方法 Double類是Java中用于表示雙精度浮點數(shù)的包裝類。它提供了一

    2024年02月05日
    瀏覽(24)
  • 【Java 排序】冒泡排序(升降序,Int類型,Double類型,多數(shù)組排序)(111)

    思路: 用二重循環(huán)實現(xiàn),外循環(huán)變量設為i,內(nèi)循環(huán)變量設為j。假如有n個數(shù)需要進行排序,則外循環(huán)重復n-1次,內(nèi)循環(huán)依次重復n-1,n-2,…,1次。每次進行比較的兩個元素都是與內(nèi)循環(huán)j有關(guān)的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,…,n-1,對于每一個i,j的值依次

    2024年02月12日
    瀏覽(29)
  • Java BigDecimal、Integer、Long、Double類型數(shù)值累加求和

    注意 Double小數(shù)點失真問題解決 : 先把Double轉(zhuǎn)為BigDecimal,再求和。代碼如下 : 如果此篇文章有幫助到您, 希望打大佬們能 關(guān)注 、 點贊 、 收藏 、 評論 支持一波,非常感謝大家! 如果有不對的地方請指正!!! 參考1

    2024年02月02日
    瀏覽(19)
  • 日常BUG——Java使用Bigdecimal類型報錯

    日常BUG——Java使用Bigdecimal類型報錯

    ?? 作 ? ??????? 者 :是江迪呀 ?? 本文 : 日常BUG 、 BUG 、 問題分析 ?? 每日?? 一言 : 存在錯誤說明你在進步! 直接上代碼: 報錯內(nèi)容: 原來JAVA中如果用 BigDecimal 做除法的時候一定要在divide方法中傳遞第二個參數(shù),定義精確到小數(shù)點后幾位,否則在不整除

    2024年02月13日
    瀏覽(33)
  • C++ 為什么double類型不能直接判斷等于0 兩個double類型怎么判斷相等

    精度丟失, 十進制小數(shù)部分在轉(zhuǎn)換成2進制的時候經(jīng)常會出現(xiàn)無限位的二進制小數(shù),計算機存儲小數(shù)有長度限制,所以會進行截取部分小數(shù)進行存儲,計算機只能存儲大概的值,而不是精確的值 。 例如: 判斷一個單精度浮點數(shù):則是 if( abs(f) = 1e-6); 要判斷一個雙精度浮點數(shù)

    2024年02月12日
    瀏覽(103)
  • double類型大小比較的方法

    double類型大小比較的方法

    問題 在Java中,int類型數(shù)據(jù)的大小比較可以使用雙等號,double類型則不能使用雙等號比較大小,那若使用double類型時怎么進行比較呢? 方法 轉(zhuǎn)換為字符串 如果要比較的兩個double數(shù)據(jù)的字符串精度相等,可以將數(shù)據(jù)轉(zhuǎn)換成string然后借助string的equals方法來間接實現(xiàn)比較兩個doub

    2024年02月14日
    瀏覽(13)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包