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
,您可以选择如何处理它。
我真的很想知道如何制作这个的逆过程
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
,您可以选择如何处理它。