2011年12月1日 星期四

Android/Java_將字串去掉科學記號

在寫與坐標相關的應用時,通常我們所接到的坐標值都是121XXXXXX、24XXXXXX,也就是一個是九碼代表經度,而八碼代表緯度,如果都這樣直接儲存並不會遇到什麼問題,但若是希望秀出來的值為121.XXXXXX、24.XXXXXX這種方式,就會進行一些"簡單"的轉換。

而當我們把121.123456這樣的數值乘以1E6時,會發現會傳回1.21123456E8這樣的科學記號,如果從頭到尾都使用數字也不會有太大關係,但若是中途有進行一些字串的轉換,就會變得有點麻煩,所以我們"可能"會希望還是以121123456這樣的方式表示:


DecimalFormat df1 = new DecimalFormat("#########");
String in_Xcoord = String.valueOf(df1.format(Float.parseFloat("121.123456")*1E6));
String in_Ycoord = String.valueOf(df1.format(Float.parseFloat("24.123456")*1E6));

主要是利用DecimalFormat,給予相對應的數值格式。

如果要將121123456轉成121.123456,只需要單純的轉換。

String fac_Xcoord = String.valueOf(Float.parseFloat(fac_Xcoord_1e6)/1E6);
String fac_Ycoord = String.valueOf(Float.parseFloat(fac_Ycoord_1e6)/1E6);


若是要將數字以金錢的方式呈現(每三位一個逗號),也可以利用這樣的方式。
new DecimalFormat(",###").format(ShowMoney) + "元";

沒有留言:

張貼留言