如何在 Postgres 中创建 uint256 数据类型?看起来它们本身只支持最多 8 个字节的整数。
它们提供具有用户指定精度的小数和数字类型。对于我的应用程序,这些值是金钱,所以我假设我会使用数字而不是小数,或者这不重要吗?
NUMERIC(precision, scale)
那么我会用吗NUMERIC(78, 0)?(2^256 是 78 位数字)或者我需要这样做NUMERIC(155, 0)并强制它始终 >= 0 (2^512,155 位数字,额外的位代表符号)?或者我应该使用十进制?
您可以创建一个域。
CREATE DOMAIN uint_256 AS NUMERIC NOT NULL
CHECK (VALUE >= 0 AND VALUE < 2^256)
CHECK (SCALE(VALUE) = 0)
Run Code Online (Sandbox Code Playgroud)
这将创建一个可重用的uint_256数据类型,该数据类型被限制在2^256限制范围内,并且还通过仅允许数字的小数位数为 0(即引发十进制值错误)来防止舍入错误。Solidity 中没有类似的情况NULL,因此数据类型不应该为空。
尝试一下:dbfiddle
| 归档时间: |
|
| 查看次数: |
4795 次 |
| 最近记录: |