1. 程式人生 > >最簡單的保留兩位小數的方法(android)

最簡單的保留兩位小數的方法(android)

有的時候,android在展示資料的時候,需要保留兩位小數:

之前用的一個方法:

比如把米轉換為km,然後保留兩位小數顯示:

<span style="white-space:pre">		</span>float distanceValue = Math.round((distance/10f))/100f;
		DecimalFormat decimalFormat =new DecimalFormat("0.00");//構造方法的字元格式這裡如果小數不足2位,會以0補足.
		String distanceString = decimalFormat.format(distanceValue) + "km";//format 返回的是字串

下面介紹一種簡單的方法,利用<xliff>標籤。

首先在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>

這裡需要注意兩個地方:

1.新增xliff標籤檔案。

然後再程式碼中使用:

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,不用擔心前面整數部分顯示不正確)。