在pl sql中将字符串转换为十进制

时间:2019-02-13 16:11:41

标签: oracle plsql decimal data-conversion varchar2

我想将字符串转换为小数点后一位的数字。 例如:

  • 转换后4-> 4.0
  • 转换后的4.1-> 4.1
  • 转换后的04.1-> 4.1
  • 转换后为04.0-> 4.0

我尝试过

从双中选择TO_NUMBER('04 .0','99.99');

但是不会将字符串转换为十进制数字。而是将其转换为整数(4)。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用TO_CHAR

从对偶中选择TO_CHAR('04 .0','99.9');

答案 1 :(得分:0)

  

但是不会将字符串转换为十进制数字。相反,它   转换为整数(4)。

不是。显示的数字格式完全取决于客户端(SQL * plus / SQL Developer等),与Oracle内部存储数字的方式无关,这取决于为该列指定的精度。

为了无论您使用哪种格式,都可以以所需的格式查看数字,并且假设您所在地区的小数点分隔符为'.'NLS_NUMERIC_CHARACTERS'.,'),则可以简单地使用{{1} }

TO_CHAR

答案 2 :(得分:0)

像这样声明数字变量

number(4,1);

示例:

declare
  pizza   number(4,1);
begin
  pizza := 4.1; 
  DBMS_OUTPUT.put_line(TO_CHAR(pizza,'0D9'));
end;