如何在mysql中存储加密货币余额?

Ale*_*pov 5 mysql

提到这个问题。在标记的答案中说,在 mysql 中存储加密货币的最佳方式是将其存储为DECIMAL(27,18)or DECIMAL(36,18)。但那里的评论让我怀疑。如果 ETH 值有 32 个字节,那么我们不能以这种方式存储余额。那么最好的保存方法是什么?

PS 除了字符串,我需要按余额值对钱包进行排序。

Thi*_*ger 9

接受的答案是错误的,非常错误的。Mysql 以 phpMyAdmin 中不明显的方式四舍五入小数。直到很久以后你才会意识到出了什么问题。你会得到中本聪/魏的四舍五入,上帝禁止你在游戏中保持平衡时进行算术。

使用整数、两列并连接。如果高效率是你的目标那么你就不会使用Mysql。您在加密中出于其他原因使用 Mysql,因此不必担心额外的时间。

您还可以删除一些零以适应 BigInt 中的更多内容。然后你就可以担心不要让灰尘进入你的前端并在那里舍入。

2021编辑:上面的答案让我非常生气,因为帐户的资历被使用循环权限来获得更多的资历。懂一点CS底层的人,或者读过Mysql手册的人就不会犯这个错误。它可能是由于循环权威而被接受的。这并不是要剥夺发布答案的人的知识,而是要剥夺权威在治理和去中心化社会中的运作方式。

仅仅因为您是某件事的专家,并不意味着您在其他方面都是专家。我认为最令人恼火的是“精确”这个词的使用。这并不意味着回复者认为它做了什么,这可能会导致混乱,从而造成损害。

以下是一些很好的链接,可以帮助您更好地理解我在说什么:

https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html

https://www.soa.org/news-and-publications/newsletters/compact/2014/may/com-2014-iss51/losing-my- precision-tips-for-handling-tricky-floating-point-arithmetic/

从哲学上讲,这就是为什么必须允许异议,即使是在奥弗顿社会窗口之外。这个世界上存在如此多的流程问题(正如疫情所表明的那样),而这些问题的解决方案却非常违反直觉。然而,民主政策是寻找最流行的答案,而不总是最有效的答案。当政策、权力或程序基于委员会的设计时,将不可避免地导致灾难。

许多人想知道这个问题的答案。这根本不是一个愚蠢的问题。如果您不知道答案,则获得批准和投票的答案甚至听起来似乎合理。事实上,这听起来很有道理。可能班上一群学生会集体选择这个答案。然而,如果相信的话,可能会导致严重后果。

我希望阅读此答案的人看到的不仅仅是这个问题的答案。仅凭怀疑就可以引导您找到所面临的其他问题的答案。不要相信你在互联网上读到的所有内容,即使来自贡献最大的聪明人。