gpt4 book ai didi

Groovy 默认情况下在 Map 中将数字值视为大十进制

转载 作者:行者123 更新时间:2023-12-04 01:41:28 25 4
gpt4 key购买 nike

我在 groovy 中创建了一个 map :

def measureMap = [:]
measureMap.put('engine.temperature', 70.0)
measureMap.put('fuel.level', 71.0)

此 map 的值被视为 Bigdecimal。

有什么原因吗。

为什么我问这个我知道层次结构

java.lang.Object
java.lang.Number
java.math.BigDecimal

所以我认为默认情况下它应该将其视为 double/float 。

最佳答案

默认情况下,Groovy 使用 BigDecimal 作为十进制数。这是 documented :

Conveniently for exact decimal number calculations, Groovy choses java.lang.BigDecimal as its decimal number type. In addition, both float and double are supported, but require an explicit type declaration, type coercion or suffix. Even if BigDecimal is the default for decimal numbers, such literals are accepted in methods or closures taking float or double as parameter types.

如果您需要您的值在映射中是双类型的,您可以为 double /浮点文字添加熟悉的 DF 后缀:

measureMap.put('engine.temperature', 70.0d) //java.lang.Double
measureMap.put('engine.temperature', 71.0f) //java.lang.Float

关于Groovy 默认情况下在 Map 中将数字值视为大十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176809/

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