Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android 国际货币格式化的示例代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

简评:今天介绍下 Android 中国际货币格式化的一个小小知识点。

目前为止,货币格式化最简单的方式是调用 numberFormat.getCurrencyInstance() 获得 numberFormat 实例来把数字格式化为货币格式的字符串(当然也可以把字符串转换成数字)。可以根据当前设备的位置来获取 java.util.Currency 实例再以此进行货币的格式化。

但如果@R_767_9616@只接受特定的几种货币,那这种随着用户设备位置而修改货币格式就不是一个好的做法。

你可能会说「这简单啊,那就在国内显示人民币,其他国家就显示美元嘛」。

嗯,你很有想法。。。

这里就要讲到这篇文章的重点了。

假设你给美国地区展示的是 $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,COUNTRY_CANADA)
    textView3.text = formatCurrency(1f,COUNTRY_AUSTRALIA)
  }
 
  private fun formatCurrency(amount: Float,currency: String,language: String,country: String) =
      currencyInLocale(currency,language,country).format(amount)
 
  private fun currencyInLocale(
      currencyCode: 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

大佬总结

以上是大佬教程为你收集整理的Android 国际货币格式化的示例代码全部内容,希望文章能够帮你解决Android 国际货币格式化的示例代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。