gpt4 book ai didi

kotlin - 将NumberFormat.parse()的结果转换为BigDecimal

转载 作者:行者123 更新时间:2023-12-02 13:12:51 25 4
gpt4 key购买 nike

我已经定义了一个formatter,如下所示:

>>> import java.text.NumberFormat
>>> val formatter = NumberFormat.getInstance()

看来 formatter.parse("1,000")的结果是 Long :
>>> formatter.parse("1,000")::class
class kotlin.Long

但是,如果我尝试将其传递给 BigDecimal的构造函数,则会收到一条错误消息,指出它与任何构造函数都不匹配:
>>> BigDecimal(formatter.parse("1,000"))
error: none of the following functions can be called with the arguments supplied:
public constructor BigDecimal(p0: BigInteger!) defined in java.math.BigDecimal
public constructor BigDecimal(p0: CharArray!) defined in java.math.BigDecimal
public constructor BigDecimal(p0: Double) defined in java.math.BigDecimal
public constructor BigDecimal(p0: Int) defined in java.math.BigDecimal
public constructor BigDecimal(p0: Long) defined in java.math.BigDecimal
public constructor BigDecimal(p0: String!) defined in java.math.BigDecimal
BigDecimal(formatter.parse("1,000"))
^

尽管这样
>>> formatter.parse("1,000") == 1000L
true

知道我在做什么错吗?

最佳答案

在 Kotlin

 formatter.parse("1,000") //this result in not Long.Its is Number

所以你必须转换成Long
fun main()
{
val formatter = NumberFormat.getInstance()
val result:Number=formatter.parse("1,000")
val decimal=BigDecimal(result.toLong())
println(decimal) //out put is 1000

}

关于kotlin - 将NumberFormat.parse()的结果转换为BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55485102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com