我尝试将column 1和column 2中的两个值相除,但在某些情况下得到的结果为5,876544358765677786 E-8。如果我尝试ROUND((col 1/col 2 *100),8)||'%'然后oracle开发人员在某些情况下删除第一个值,我得到,056789543没有第一个数字。我如何修复它而不是得到正确的结果?我试着把to_char改为圆形
to_char
klh5stk11#
5.876544358765677786E-8是使用科学记数法编写的0.00000005876544358765677786。它们是相同的值,只是以不同的格式编写。如果你想指定数字的格式,那么使用TO_CHAR将其转换为格式化的字符串;如果你想把值保留为一个数字,并将其四舍五入到一组小数位数,那么使用ROUND:
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
1条答案
按热度按时间klh5stk11#
5.876544358765677786E-8
是使用科学记数法编写的0.00000005876544358765677786
。它们是相同的值,只是以不同的格式编写。如果你想指定数字的格式,那么使用
TO_CHAR
将其转换为格式化的字符串;如果你想把值保留为一个数字,并将其四舍五入到一组小数位数,那么使用ROUND
:其中,对于示例数据:
输出:
| 价值|格式化字符串|舍入值|
| - ------|- ------|- ------|
| .00000005876544358765677786| 0.00000006|.00000006|
| 5.876544358765677786| 5.87654436|5.87654436|
fiddle