NumberFormat 到 Kotlin 中的数字

NumberFormat to Number in Kotlin

我真的很想知道如何制作这个的逆过程

fun makeAFormattedString(currencyCode: String, numberToConvert: Float): String{
    val format: NumberFormat = NumberFormat.getCurrencyInstance()
    format.maximumFractionDigits = 2
    format.currency = Currency.getInstance(currencyCode)
    return format.format(numberToConvert)
}

当我输入:("MXN",3000) 我的结果是

“MX $3000.00”

我想知道如何用这个字符串得到数字 (3000)

“墨西哥比索 $3000.00”

"MX 00.00".takeLastWhile { it != '$' }

是众多方法中的一种。

val result = "[^\d]+?(\d+\.?\d*)".toRegex().find("MX 00.00")
result?.groupValues?.last()

也有效。

问题是无法判断您是以 Int 还是 Float 开始的。如果您以 3000 开头,则格式为 3000.00,如果您以 3000.45 开头,则格式为 3000.45。结果将是 Float,您可以选择如何处理它。