pyarrow.decimal128#

pyarrow.decimal128(int precision, int scale=0) DataType#

创建具有指定精度(precision)和标度(scale)以及 128 位宽度的十进制类型。

Arrow 十进制是编码为缩放整数的定点十进制数。精度是十进制类型可以表示的有效数字位数;比例(scale)是小数点后的位数(注意比例可以是负数)。

例如,decimal128(7, 3) 可以精确表示数字 1234.567 和 -1234.567(内部编码为 128 位整数 1234567 和 -1234567),但无法表示 12345.67 或 123.4567。

decimal128(5, -3) 可以精确表示数字 12345000(内部编码为 128 位整数 12345),但无法表示 123450000 或 1234500。

如果您需要的精度超过 38 位有效数字,请考虑使用 decimal256

参数:
precisionint

必须介于 1 和 38 之间

scaleint
返回:
decimal_typeDecimal128Type

示例

创建十进制类型的实例

>>> import pyarrow as pa
>>> pa.decimal128(5, 2)
Decimal128Type(decimal128(5, 2))

创建十进制类型的数组

>>> import decimal
>>> a = decimal.Decimal('123.45')
>>> pa.array([a], pa.decimal128(5, 2))
<pyarrow.lib.Decimal128Array object at ...>
[
  123.45
]