


Subscribe to Breezeandmoon

Subscribe to Breezeandmoon
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
无限精度是指Space and Time对大十进制数据类型的独特支持。
传统数据库通常仅支持 18-38 位数字的数据类型,但 Web3 中的许多数字范围都在 60 位以上。钱包余额或汽油费等都涉及这种规模的数字,这使得在传统数据库中处理区块链数据非常困难。为了对这些大数字进行计算,您必须四舍五入到支持的位数。换句话说,你会失去精度。
Space and Time 扩展了十进制数据类型,以支持远远超出其他数据库中的位数限制的数字。借助空间和时间,您可以通过简单的语句定义大数小数。所有的复杂性都被抽象掉了。CREATE
您所要做的就是创建一个表并定义具有所选精度的列。剩下的我们来处理。列定义如下所示:

将一列定义为decimal(78, 0),您将得到一个78位精度的整数(小数点后0位)
定义一列为decimal(300, 250),你会得到一个300位精度的整数(小数点后有250位)
这本质上允许大数计算的无限精度。与其他数据库不同,Space and Time 可让您在不损失精度的情况下对大数字/小数执行运算,从而能够对区块链数据进行更准确的分析。
二进制算术:[+、-、*、/、%]
比较运算符:[>、<、<=、>=、<=>]
分组运算符:[Avg、Min、Max、Count、Sum]
空检查
注意:对于二元运算,如果前导操作数的数据类型不是 Big Decimal,查询引擎将尝试对 Big Decimal 进行截断和四舍五入,从而导致精度损失。
例如,以下表达式将导致精度损失,因为 1 是前导操作数并且不是大十进制:

为了避免失去精度,请使用强制转换:

**子查询:**目前,子查询的 Big Decimal 数据类型存在限制。正在开展工作以改进这一点。现在,请参见下文:
在下面的查询中,如果“l_quanity”是Big Decimal类型,则会导致查询分析失败:

为了避免这个问题,您可以在子查询中显式转换列:

无限精度是指Space and Time对大十进制数据类型的独特支持。
传统数据库通常仅支持 18-38 位数字的数据类型,但 Web3 中的许多数字范围都在 60 位以上。钱包余额或汽油费等都涉及这种规模的数字,这使得在传统数据库中处理区块链数据非常困难。为了对这些大数字进行计算,您必须四舍五入到支持的位数。换句话说,你会失去精度。
Space and Time 扩展了十进制数据类型,以支持远远超出其他数据库中的位数限制的数字。借助空间和时间,您可以通过简单的语句定义大数小数。所有的复杂性都被抽象掉了。CREATE
您所要做的就是创建一个表并定义具有所选精度的列。剩下的我们来处理。列定义如下所示:

将一列定义为decimal(78, 0),您将得到一个78位精度的整数(小数点后0位)
定义一列为decimal(300, 250),你会得到一个300位精度的整数(小数点后有250位)
这本质上允许大数计算的无限精度。与其他数据库不同,Space and Time 可让您在不损失精度的情况下对大数字/小数执行运算,从而能够对区块链数据进行更准确的分析。
二进制算术:[+、-、*、/、%]
比较运算符:[>、<、<=、>=、<=>]
分组运算符:[Avg、Min、Max、Count、Sum]
空检查
注意:对于二元运算,如果前导操作数的数据类型不是 Big Decimal,查询引擎将尝试对 Big Decimal 进行截断和四舍五入,从而导致精度损失。
例如,以下表达式将导致精度损失,因为 1 是前导操作数并且不是大十进制:

为了避免失去精度,请使用强制转换:

**子查询:**目前,子查询的 Big Decimal 数据类型存在限制。正在开展工作以改进这一点。现在,请参见下文:
在下面的查询中,如果“l_quanity”是Big Decimal类型,则会导致查询分析失败:

为了避免这个问题,您可以在子查询中显式转换列:

No activity yet