国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 國際貨幣格式化的示例代碼

2019-10-22 18:22:19
字體:
來源:轉載
供稿:網友

簡評:今天介紹下 Android 中國際貨幣格式化的一個小小知識點。

目前為止,貨幣格式化最簡單的方式是調用 NumberFormat.getCurrencyInstance() 獲得 NumberFormat 實例來把數字格式化為貨幣格式的字符串(當然也可以把字符串轉換成數字)。可以根據當前設備的位置來獲取 java.util.Currency 實例再以此進行貨幣的格式化。

但如果我們的應用只接受特定的幾種貨幣,那這種隨著用戶設備位置而修改貨幣格式就不是一個好的做法。

你可能會說「這簡單啊,那就在國內默認顯示人民幣,其他國家就顯示美元嘛」。

嗯,你很有想法。。。

這里就要講到這篇文章的重點了。

假設你給美國地區展示的是 $1,那他們會默認這是 1 美元,這沒問題。

但世界上還有超過二十個國家和地區的本地貨幣也叫 dollar ($),比如加拿大、澳大利亞和新西蘭。這時候如果你還是展示 $1,那這些國家的用戶就會默認這是指他們的貨幣,這就會造成誤解,讓用戶覺得你們的收費不對。

因此,如果當前用戶是在加拿大的,而商品價格需要為美元,那么在進行格式化時還需要明確符號,以表明顯示的是美元而不是加元。

下面是 Kotlin 代碼的一個例子:

class MainActivity : AppCompatActivity() {   override fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.activity_main)     textView1.text = formatCurrency(1f, CURRENCY_US_DOLLARS, LANGUAGE_ENGLISH, COUNTRY_US)    textView2.text = formatCurrency(1f, CURRENCY_US_DOLLARS, LANGUAGE_ENGLISH, COUNTRY_CANADA)    textView3.text = formatCurrency(1f, CURRENCY_US_DOLLARS, LANGUAGE_ENGLISH, COUNTRY_AUSTRALIA)  }   private fun formatCurrency(amount: Float, currency: String, language: String, country: String) =      currencyInLocale(currency, language, country).format(amount)   private fun currencyInLocale(      currencyCode: String,      language: String,      country: String = "",      variant: String = ""): NumberFormat =      Locale(language, country, variant).let {        NumberFormat.getCurrencyInstance(it).apply {          currency = Currency.getInstance(currencyCode)        }      }   companion object {    private const val CURRENCY_US_DOLLARS: String = "USD"    private const val LANGUAGE_ENGLISH: String = "EN"    private const val COUNTRY_US: String = "US"    private const val COUNTRY_CANADA: String = "CA"    private const val COUNTRY_AUSTRALIA: String = "AU"  }}

展示效果,從上到下分別是美國、加拿大和澳大利亞:

Android,國際貨幣格式化,貨幣格式化

這里對于加拿大顯示 US$,而澳大利亞顯示 USD。雖然兩者都能理解,但能符合各語言環境的具體情況當然還是更好的。

雖然這可能只是一個小知識點,但我個人覺得知道了還是蠻有用的。

原文: Currency Curiosities

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌兰察布市| 朔州市| 财经| 泸州市| 宁都县| 奇台县| 互助| 泸溪县| 潮安县| 鹤山市| 灵宝市| 高州市| 辽阳市| 方正县| 定州市| 凤冈县| 丽江市| 从江县| 满洲里市| 枣强县| 岳阳县| 会泽县| 乐安县| 桂平市| 安多县| 专栏| 邯郸县| 龙井市| 屏山县| 临江市| 石柱| 宁陵县| 横峰县| 友谊县| 灯塔市| 岫岩| 梅州市| 马公市| 凉城县| 兴文县| 饶阳县|