sql - Impala 双精度值未正确加载
问题描述
我在 impala 中创建了一个简单的表,如下所示
CREATE TABLE IF NOT EXISTS my_db.employee
(name STRING, salary double );
我的插入语句如下
insert into employee (name, salary)
VALUES ("Prasad", 158.17)
但问题是
我在 impala 中的价值观正在加载为
name,salary
prasad,158.1666666666
我不明白为什么会这样。我已经在其他数据库中尝试过,比如 hive,但是值被加载为 158.17 但在 impala 中它是 158.1666666666
你能帮我解释一下为什么会这样吗...
以及如何加载实际值...
请指导我
解决方案
这是浮点与定点运算的问题。如果您希望小数部分准确无误,请使用decimal
/numeric
作为列:
CREATE TABLE IF NOT EXISTS my_db.employee
name STRING,
salary DECIMAL(10, 2)
);
推荐阅读
- c++ - 空白(); 带空括号的无效
- json - JSON 模型建议
- c - 我的代码给了我一个分段错误,我做错了什么?
- java - JUnit 测试 ArrayList 元素不重复
- android - 如何修复错误:找不到符号方法 getSharedPreferences(Switch,int)
- mysql - MySQL未知列错误
- android - 如何为父片段和子片段提供相同的 ViewModel 实例
- java - Android:没有版本检查的 getDrawable 和其他资源?
- python - 如何在 .py 脚本中使用 python 书签功能?
- java - SimpleDateFormat 和 DataFormat 有不同的时区