The GO driver for MongoDB有一个Decimal128类型,它是如下所示的结构: type Decimal128 struct {
h, l uint64
} 根据文档,h和l是高和低uint64值。这两个值代表什么?假设我想创建一个Decimal128,它在转换为字符串时将等于"100.50"。使用下面的函数,h和l的值是多少。 func NewDecimal128(h, l uint64) Decimal128 {
return Decimal128{h: h, l: l}
} 我总是被迫解析像这样的d, _ := primitiv
我有一个document中的文档,其中的字段config设置为 /** @ODM\Field(type="float") */
public $stock_price; 在我的mongodb上,这个字段有一个小数的验证 stock_price: {
bsonType: 'decimal',
description: 'must be a decimal and is required'
}, 当我尝试存储值时,它返回document validation failed或cannot convert decimal to
我在scala中偶然发现了一些相互关联的东西(可能只对我而言)。总之,如果我们有一个BigDecimal(假设val a = BigDecimal(someValue),其中someValue是十进制字符串),则操作的结果
N * a / N == a
不会总是产生true。我想这与BigDecimals上的任何评论有关。我知道在scala中,BigDecimals是在默认的MathContext设置为DECIMAL128的情况下创建的( HALF_EVEN舍入和精度等于34)。我发现小数点超过30位的小数上有这样的行为
我的问题是为什么我会得到这样的结果。我能控制他们吗?
示例
-0.007