这是我当前的代码:
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”(新加坡元)
感谢您的热情欢迎!对于疏忽表示歉意。
对于 Kotlin/Android,您可以使用以下代码实现相同的结果:
val price = 123.45
val currencySymbol = "$"
val formattedPrice = "$currencySymbol${"%.2f".format(price)}"
println(formattedPrice)
"$currencySymbol${"%.2f".format(price)}" 在 Kotlin 中创建一个带有两位小数和指定货币符号的格式化字符串。
使用您的实际价格值调整价格变量,并使用所需的货币符号调整currencySymbol变量。
生成带有货币符号(例如“$”)而不是货币代码(例如 USD、EUR)的价格字符串 JavaScript 示例:
常量价格 = 123.45; const 货币符号 = "$"; const formattedPrice =
${currencySymbol}${price.toFixed(2)}
;
console.log(formattedPrice);
${currencySymbol}${price.toFixed(2)} 创建一个带有两位小数和货币符号的格式化字符串。
使用您的实际价格值调整价格变量,并使用所需的货币符号调整货币符号变量。这些示例假设价格具有两位小数;您可以根据您的具体要求调整格式。