mysql - SQL 数字不准确

标签 mysql sql

我的位掩码总和为(2^63)-1。但这样的结果是不准确的。最后 3 个数字始终为 0 或替换为 e18 样式。

简单的 SQL 示例:

SELECT
    POW(2,63), /* 9.223372036854776e18 */
    CAST(POW(2,63) AS DECIMAL(65)), /* 9223372036854776000 */
    (POW(2,63) - 1), /* 9.223372036854776e18 */
    CAST((POW(2,63) - 1) AS DECIMAL(65)) /* 9223372036854776000 */

最佳答案

POW() 返回一个“ double ” float ,只有 53 位尾数。您期望的精度为 64 位。请参阅http://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html

关于mysql - SQL 数字不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284543/

相关文章:

MySQL 求和列并显示列中的最后一行

mysql - SQL如何统计相同专业的人数

java - 如何在Hibernate中运行mysql更新批量查询?

sql - 有没有更好的方法通过索引而不是通过列名更新数据库?

MYSQL 权衡结果

php - 在 Laravel 中从数据库创建实体类

mysql - 在 alter table 中使用 change, modify, column 时 mysql 是如何工作的?

javascript - 使用 PHP 的 MySQL 查询未返回预期数据

php - codeigniter 转义查询

java - 从 JSON 创建 CLOB 属性