android 如何保留数据两位小数
今天,簡單講講android如何保留運算結果為浮點數時,保留兩位小數顯示。
最近,由于換了租房的位置,狀態不好,現在沒有心思寫比較復雜的內容,最近寫博客可能都會偏向簡單的內容。
這個其實很簡單,最近做一個功能時,獲取到文件的大小為B的數據,在界面上需要顯示為MB,這是需要轉換才可以1MB=1024*1024B,所以需要進行觸發運算,但是運算結果為整數不好,需要為浮點數并且顯示小數點后兩位數據。當時居然不知道怎么辦,所以在網上查找資料,最終解決了問題,這里記錄一下。
android 保留兩位小數5種方法
1.使用DecimalFormat
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 方法
結果為: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 如何保留数据两位小数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 解决listview.n
- 下一篇: android 如何使用Parcelab