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

String轉(zhuǎn)double失去精度問題及解決

 更新時間:2023年07月11日 09:16:28   作者:老四就是我  
這篇文章主要介紹了關于String轉(zhuǎn)double失去精度問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

String轉(zhuǎn)double失去精度問題

最近遇到一個坑,19.9的字符串轉(zhuǎn)double變成19.89,坑死我了。

現(xiàn)在把更改后的代碼貼出來

String s = "19.9";
BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s));
// 將temp乘以100
temp = temp.multiply(BigDecimal.valueOf(100));
int sum = temp.intValue();
System.out.println(sum);

這樣親測不會失去精度。最后說一句,細節(jié)很重要,特別是字符串轉(zhuǎn)其他類型的時候。

Java精度丟失之String轉(zhuǎn)Double轉(zhuǎn)int

項目遇到一種需求

服務器返回我“0.850”,我需要顯示八五折

看起來很簡單,于是代碼出來了:

?Double d = Double.parseDouble("0.850");
?int result = (int) (d*100);

隨便找了兩個數(shù)試了試都沒問題就以為大功告成了,誰知道測試的同事告訴我0.570顯示的是56而不是57,我抱著懷疑的態(tài)度驗證了一下,的確是我錯了!

我心里一驚,是不是還有其他的特殊數(shù)字也會出現(xiàn)這種詭異的現(xiàn)象呢?

?public static void main(String[] args) {
? ? ? ? for(int i=0;i<10;i++){
? ? ? ? ? ? for (int j=0;j<10;j++){
? ? ? ? ? ? ? ? for(int k=0;k<10;k++){
? ? ? ? ? ? ? ? ? ? getUnNormalNumber(i,j,k);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? private static ?void getUnNormalNumber(int i,int j,int k){
? ? ? ? String test = "0." + i + j + k;
? ? ? ? Double d = Double.parseDouble(test);
? ? ? ? int result = (int) (d*100);
? ? ? ? if(result/10==i&&result%10==j){
? ? ? ? }else {
? ? ? ? ? ? System.out.println(test);
? ? ? ? }
? ? }

經(jīng)過驗證,果然有三個數(shù)是特殊的數(shù)字!

0.290
0.570
0.580

解決辦法

private static String getSuitableString(String test) {
? ? ? ? String array[] = test.split("\\.");
? ? ? ? if(array[1]==null) { return ""; }
? ? ? ? char[] chars = array[1].toCharArray();
? ? ? ? if (chars.length>=2){
? ? ? ? ? ? return chars[0]+""+chars[1];
? ? ? ? }else {
? ? ? ? ? ? return ?chars[0]+"";
? ? ? ? }
? ? }

總結(jié)

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

相關文章

  • Spring 中jdbcTemplate 實現(xiàn)執(zhí)行多條sql語句示例

    Spring 中jdbcTemplate 實現(xiàn)執(zhí)行多條sql語句示例

    本篇文章主要介紹了Spring 中jdbcTemplate 實現(xiàn)執(zhí)行多條sql語句示例,可以對多個表執(zhí)行多個sql語句,有興趣的可以了解一下。
    2017-01-01
  • Java雇員管理小項目

    Java雇員管理小項目

    這篇文章主要為大家詳細介紹了Java雇員管理小項目,理解面向?qū)ο缶幊?,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JAVA后端應該學什么技術

    JAVA后端應該學什么技術

    這篇文章主要介紹了JAVA后端應該學什么技術,對JAVA感興趣的同學,可以規(guī)劃一下
    2021-04-04
  • Java中的原子類詳解

    Java中的原子類詳解

    這篇文章主要介紹了Java中的原子類詳解,Java原子類是一種多線程編程中常用的工具,用于實現(xiàn)線程安全的操作,它們提供了一種原子性操作的機制,確保多個線程同時訪問共享變量時的數(shù)據(jù)一致性,需要的朋友可以參考下
    2023-10-10
  • Java自動生成趨勢比對數(shù)據(jù)的方法分享

    Java自動生成趨勢比對數(shù)據(jù)的方法分享

    這篇文章主要和大家分享了一種Java自動生成趨勢比對數(shù)據(jù)的方法設計及實現(xiàn),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04
  • Java 十大排序算法之歸并排序刨析

    Java 十大排序算法之歸并排序刨析

    歸并排序是采用分治法的一個非常典型的應用。先使每個子序列有序,再使子序列段間有序,也就是將已有的子序列合并,得到完全有序的序列;如果將兩個有序表合并成一個有序表,稱為二路歸并
    2021-11-11
  • java 中Buffer源碼的分析

    java 中Buffer源碼的分析

    這篇文章主要介紹了java 中Buffer源碼的分析的相關資料,需要的朋友可以參考下
    2017-06-06
  • Java如何識別圖片或掃描PDF中的文字詳解

    Java如何識別圖片或掃描PDF中的文字詳解

    這篇文章主要介紹了Java如何識別圖片或掃描PDF中文字的相關資料,介紹了Java中使用Spire.OCRforJava庫來識別圖片和掃描PDF文件中的文字,需要的朋友可以參考下
    2025-01-01
  • SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    SpringMVC中解決@ResponseBody注解返回中文亂碼問題

    這篇文章主要介紹了SpringMVC中解決@ResponseBody注解返回中文亂碼問題, 小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • MyBatis-Plus 之selectMaps、selectObjs、selectCount、selectOne的使用

    MyBatis-Plus 之selectMaps、selectObjs、selectCount、selectO

    本文主要介紹了MyBatis-Plus 之selectMaps、selectObjs、selectCount、selectOne的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

开封市| 蕉岭县| 洛扎县| 饶平县| 灵石县| 密山市| 平安县| 临颍县| 上蔡县| 英超| 上犹县| 江安县| 黄陵县| 玉树县| 白朗县| 泾川县| 大方县| 忻城县| 上思县| 赤水市| 义乌市| 邵阳市| 谷城县| 宜春市| 邮箱| 开封县| 根河市| 开阳县| 吴江市| 小金县| 乳源| 东兰县| 手游| 台安县| 蓝田县| 讷河市| 浦县| 天津市| 临朐县| 三门县| 双流县|