亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年11月27日 10:04:22   作者:極光日?qǐng)?bào)  
本篇文章主要介紹了Android 國際貨幣格式化的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

簡評(píng):今天介紹下 Android 中國際貨幣格式化的一個(gè)小小知識(shí)點(diǎn)。

目前為止,貨幣格式化最簡單的方式是調(diào)用 NumberFormat.getCurrencyInstance() 獲得 NumberFormat 實(shí)例來把數(shù)字格式化為貨幣格式的字符串(當(dāng)然也可以把字符串轉(zhuǎn)換成數(shù)字)。可以根據(jù)當(dāng)前設(shè)備的位置來獲取 java.util.Currency 實(shí)例再以此進(jìn)行貨幣的格式化。

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

你可能會(huì)說「這簡單啊,那就在國內(nèi)默認(rèn)顯示人民幣,其他國家就顯示美元嘛」。

嗯,你很有想法。。。

這里就要講到這篇文章的重點(diǎn)了。

假設(shè)你給美國地區(qū)展示的是 $1,那他們會(huì)默認(rèn)這是 1 美元,這沒問題。

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

因此,如果當(dāng)前用戶是在加拿大的,而商品價(jià)格需要為美元,那么在進(jìn)行格式化時(shí)還需要明確符號(hào),以表明顯示的是美元而不是加元。

下面是 Kotlin 代碼的一個(gè)例子:

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"
  }
}

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

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

雖然這可能只是一個(gè)小知識(shí)點(diǎn),但我個(gè)人覺得知道了還是蠻有用的。

原文: Currency Curiosities

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論