如何生成带有货币符号(例如 $)而不是货币代码(USD、EUR)的价格字符串?

问题描述 投票:0回答:2

这是我当前的代码:

fun getMonthlyPriceString(yearlyPriceMicros: Long, currencyCode: String): String  {
    val format: NumberFormat = NumberFormat.getCurrencyInstance()
    format.maximumFractionDigits = 2
    format.currency = Currency.getInstance(currencyCode)

    return format.format(yearlyPriceMicros.toFloat() / 1_000_000f / 12)
}

这将产生:“SGD 5.00”。但是我想要一个像“$5.00”这样的价格字符串(带有符号)。

currencyCode
参数是从外部 API (RevenueCat) 检索的,格式为“EUR”、“USD”、“SGD”等。

我尝试将第 4 行的代码替换为

format.currency = Currency.getInstance(Locale.getDefault())

但这会产生:“£5.00”,这是错误的符号(英镑),因为我住在新加坡,因此它应该是“$5.00”(新加坡元)

android kotlin currency-formatting
2个回答
0
投票

感谢您的热情欢迎!对于疏忽表示歉意。

对于 Kotlin/Android,您可以使用以下代码实现相同的结果:

val price = 123.45
val currencySymbol = "$"
val formattedPrice = "$currencySymbol${"%.2f".format(price)}"
println(formattedPrice)

"$currencySymbol${"%.2f".format(price)}" 在 Kotlin 中创建一个带有两位小数和指定货币符号的格式化字符串。

使用您的实际价格值调整价格变量,并使用所需的货币符号调整currencySymbol变量。


-1
投票

生成带有货币符号(例如“$”)而不是货币代码(例如 USD、EUR)的价格字符串 JavaScript 示例:

常量价格 = 123.45; const 货币符号 = "$"; const formattedPrice =

${currencySymbol}${price.toFixed(2)}
; console.log(formattedPrice);

${currencySymbol}${price.toFixed(2)} 创建一个带有两位小数和货币符号的格式化字符串

使用您的实际价格值调整价格变量,并使用所需的货币符号调整货币符号变量。这些示例假设价格具有两位小数;您可以根据您的具体要求调整格式。

© www.soinside.com 2019 - 2024. All rights reserved.