# 无限精度 **Published by:** [Breezeandmoon](https://paragraph.com/@breezeandmoon/) **Published on:** 2024-02-20 **URL:** https://paragraph.com/@breezeandmoon/n0N38Z62KeRGkuoPs0yf ## Content 无限精度是指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类型,则会导致查询分析失败:为了避免这个问题,您可以在子查询中显式转换列: ## Publication Information - [Breezeandmoon](https://paragraph.com/@breezeandmoon/): Publication homepage - [All Posts](https://paragraph.com/@breezeandmoon/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@breezeandmoon): Subscribe to updates - [Twitter](https://twitter.com/OBM5D942LYocssN): Follow on Twitter