關(guān)于解決double類型數(shù)據(jù)顯示問題的解決

在項目中經(jīng)常出現(xiàn)double類型的數(shù)據(jù)在顯示時0000000000...1或者999999999999...9等情況出現(xiàn),這種情況有很多解決情況,可以從后端解決也可以從前端解決。

前端解決:

方法一:使用toFixed()函數(shù)

toFixed() 方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字。
使用語法為:NumberObject.toFixed(num);其中num是指規(guī)定小數(shù)位數(shù),是 0 ~ 20 之間的值,包括 0 和 20。如果省略了該參數(shù),將用 0 代替。

var num = 557127.1299999999;
num.toFixed(2);

輸出結(jié)果為:557127.13

后端使用java解決:

方法一:使用BigDecimal對象

前面說過詳細的說明,不做詳細說明了,詳解見 http://www.itdecent.cn/p/b2708c1b2c77

// import java.math.BigDecimal;
double num = 557127.1299999999;
num = new BigDecimal(num).setScale(7, BigDecimal.ROUND_HALF_UP).toPlainString();
System.out.println("num:" + "\n" + num);
String str = "557127.1299999999";
str = new BigDecimal(Double.parseDouble(str)).setScale(7, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("str :" + "\n" + str );

方法二:使用DecimalFormat對象

// java.text.DecimalFormat;
double num = 557127.1299999999;
DecimalFormat df = new   java.text.DecimalFormat("#.00");
String str = df.format(num);
System.out.println("str :" + "\n" + str );

以上就是一些簡單的處理java中double類型數(shù)據(jù)計算導(dǎo)致精度缺失的解決辦法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容