首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle "Number“数据类型精度

Oracle "Number“数据类型精度
EN

Stack Overflow用户
提问于 2015-01-21 18:15:10
回答 1查看 433关注 0票数 0

我们正尝试将这些值存储在一个表中,该表有一个列为"Number“的Datatype。当我们存储一个非常小的值时,问题就出现了,比如"0.000001“。

代码语言:javascript
复制
SQL> desc testing
Name Type   Nullable Default Comments 
---- ------ -------- ------- -------- 
A    NUMBER Y     

SQL> insert into testing values (0.00000001);
1 row inserted

SQL> select * from testing;
         A
----------
     0.001
      1E-5
      1E-8
    0.0001

有没有办法,我们可以存储和检索绝对值,就像store中的0.00001,而不是1E-5。

EN

回答 1

Stack Overflow用户

发布于 2015-01-21 18:34:45

这只是一个显示问题。正确设置numformat

例如,

代码语言:javascript
复制
SQL> create table t(a number);

Table created.

SQL> insert into t values(0.000000000000001);

1 row created.

SQL> select * from t;

         A
----------
1.0000E-15

SQL> set numformat 9D9999999999999999
SQL> select * from t;

                  A
-------------------
  .0000000000000010

SQL>

更新 OP表示,当尝试将数值发送到应用程序前端时,上述操作没有解决问题。应用程序正在使用的特定于区域设置的一定有问题。

如果问题仅仅出在显示器上,那么您可以使用to_char和适当的格式模型将其转换为字符。

代码语言:javascript
复制
SQL> create table t(a number);

Table created.

SQL> insert into t values(.000000000000000000001);

1 row created.

SQL> select * from t;

         A
----------
1.0000E-21

SQL> select ltrim(to_char(a, '9999999D999999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''')) num from t

NUM
------------------------------
.000000000000000000001

SQL>

注意ltrim的用法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28064585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档