日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 如何保留数据两位小数

發布時間:2024/4/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 如何保留数据两位小数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天,簡單講講android如何保留運算結果為浮點數時,保留兩位小數顯示。


最近,由于換了租房的位置,狀態不好,現在沒有心思寫比較復雜的內容,最近寫博客可能都會偏向簡單的內容。


這個其實很簡單,最近做一個功能時,獲取到文件的大小為B的數據,在界面上需要顯示為MB,這是需要轉換才可以1MB=1024*1024B,所以需要進行觸發運算,但是運算結果為整數不好,需要為浮點數并且顯示小數點后兩位數據。當時居然不知道怎么辦,所以在網上查找資料,最終解決了問題,這里記錄一下。


android 保留兩位小數5種方法


1.使用DecimalFormat

float distanceValue = Math.round((distance/10f))/100f; DecimalFormat decimalFormat =new DecimalFormat(0.00);//構造方法的字符格式這里如果小數不足2位,會以0補足. String distanceString = decimalFormat.format(distanceValue) + km;//format 返回的是字符串


2.利用標簽

首先在value>string資源文件重定義String標簽:

<!--?xml version=1.0 encoding=utf-8?--> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><string name="app_name">TextCustomView</string><string name="hello_world">Hello world!</string><string name="action_settings">Settings</string><string name="xliff_test">your name is <xliff:g id="NAME">%1$50s</xliff:g>, and your age is<xliff:g id="AGE">%2$1.2f</xliff:g></string></resources>

然后再代碼中使用:
String str = res.getString(R.string.xliff_test, xliff,(float)120);

然后得到的字符串就是保留兩位小數據的(補零).
1.此種方式,在代碼中就不需要再次對數據進行處理,可以簡化代碼與計算。

2.在使用xliff標簽的%n$mf的方式的時候,m可以設置為1.n(n為要保留的小數位數,沒有則補零,前面的1會完整保留當前數據,比如100.2會顯示100.20,不用擔心前面整數部分顯示不正確)。

?

3.BigDecimal 方法

double f = 111231.5585; BigDecimal bg = new BigDecimal(f); double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println(f1);

結果為:111231.56

?

4.String.format方法

System.out.println(String.format("%.2f", f));

結果為:111231.56


5.NumberFormat 方法

NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); System.out.println(nf.format(f));

結果為:111231.56


簡單講講,其實很簡單。第一種代碼DecimalFormat在構造函數里設置了格式化的要求為保留兩位小數,然后直接格式化浮點數就可以了。第2種代碼string資源文件使用了%2$1.2f的格式化要求,其實就是保留兩位小數。第三種代碼使用將數據先轉成BigDecimal,然后調用bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();來保留兩位小數。第4種String.format之前寫了博客講這個的,大家可以去看看,或者自己去網上查找資料。第5中通過NumberFormat,通過設置nf.setMaximumFractionDigits(2);來保留浮點數兩位小數。

?

?

以上5中函數是在網上找到的,都可以使用。但是由于我在listView里需要做很多的這種保留小數點的操作,所以對效率有要求。我最后自己想了一種代碼,可以對數據先乘100然后除以100來保留兩位小數。比如傳回的文件大小為1234344444B.我是這樣轉換的:


(float)(1234344444B * 100 /1024/1024)/100,這樣就可以保留兩位小數,而且效率也比較好。

?

android 如何保留數據兩位小數就講完了。

?

就這么簡單

?

總結

以上是生活随笔為你收集整理的android 如何保留数据两位小数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。