如何在oracle developer中获得正确的数字显示

nwlls2ji  于 2023-03-22  发布在  Oracle
关注(0)|答案(1)|浏览(170)

我尝试将column 1和column 2中的两个值相除,但在某些情况下得到的结果为5,876544358765677786 E-8。如果我尝试ROUND((col 1/col 2 *100),8)||'%'然后oracle开发人员在某些情况下删除第一个值,我得到,056789543没有第一个数字。我如何修复它而不是得到正确的结果?
我试着把to_char改为圆形

klh5stk1

klh5stk11#

5.876544358765677786E-8是使用科学记数法编写的0.00000005876544358765677786。它们是相同的值,只是以不同的格式编写。
如果你想指定数字的格式,那么使用TO_CHAR将其转换为格式化的字符串;如果你想把值保留为一个数字,并将其四舍五入到一组小数位数,那么使用ROUND

SELECT value,
       TO_CHAR(value, '99999990.99999999') AS formatted_string,
       ROUND(value, 8) AS rounded_value
FROM   table_name;

其中,对于示例数据:

CREATE TABLE table_name (value) AS
SELECT 5.876544358765677786E-8 FROM DUAL UNION ALL
SELECT 5.876544358765677786E0 FROM DUAL;

输出:
| 价值|格式化字符串|舍入值|
| - ------|- ------|- ------|
| .00000005876544358765677786| 0.00000006|.00000006|
| 5.876544358765677786| 5.87654436|5.87654436|
fiddle

相关问题