首页 > 解决方案 > 在 Kotlin 中将 NumberFormat 转换为数字

问题描述

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

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 )

“MX $3000.00”

标签: kotlincurrency

解决方案


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

是许多方法之一。

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

也可以。

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


推荐阅读