首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从oracle number返回3度精度?

如何从oracle number返回3度精度?
EN

Stack Overflow用户
提问于 2020-02-15 02:19:08
回答 2查看 79关注 0票数 1

我们有一个科学应用程序,它在Access中,我正在迁移到Oracle。访问数据类型为Number。Oracle的编号为(20,12)。

这些数据是我们在报告中向用户显示的小数字,例如1.000 E-5。

然而,这个数字实际上大约是0.0000099999,也就是0.99999 E-5。

我可以将数字转换为科学记数法,但它返回0.99999 E-5,不进行舍入。我希望能够对这个数字进行舍入。不幸的是,所有的数字都是以小数点#表示的。例如:

0.9999E-5

0.9999E-10

因此,我认为仅仅是直线(N,X)是行不通的。我想同时四舍五入到3位小数,并用科学记数法表示。从本质上讲,这是精确度的科学概念,小数点的#会有所不同,但有效数字的#始终是3。

EN

回答 2

Stack Overflow用户

发布于 2020-02-15 02:39:40

我想这就是你想要的?

代码语言:javascript
复制
select to_char(0.0000099999 , '9.999EEEE') from dual

1.000E-05

代码语言:javascript
复制
select to_char(0.0000000000099999 , '9.999EEEE') from dual

1.000E-11

票数 2
EN

Stack Overflow用户

发布于 2020-02-20 00:36:26

如果每个数字都需要四舍五入(基于你的最新评论),我假设预期输出如下:

0.00009999 => 1.000E-04

0.0009999 => 1.000E-03

0.009999 => 1.000E-02

0.09999 => 1.000E-01

0.9999 => 1.000E-00

如果是,请尝试:

select to_char(round(<input>,abs(trunc(log(10,<input>)))),'0.999EEEE') from dual

示例:

select to_char(round(0.00009999,abs(trunc(log(10,0.00009999)))),'0.999EEEE') from dual

输出:

1.000E-04

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

https://stackoverflow.com/questions/60231614

复制
相关文章

相似问题

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