在 pl sql 中将字符串转换为十进制
Convert String to Decimal in pl sql
我想将字符串转换为保留一位小数的数字。
例如:
- 4 转换后 -> 4.0
- 4.1 转换后 -> 4.1
- 04.1 转换后 -> 4.1
- 04.0 转换后 -> 4.0
我试过了
SELECT TO_NUMBER('04.0','99.99') FROM dual;
但它不会将字符串转换为十进制数。相反,它转换为整数 (4)。
你可以试试TO_CHAR
SELECT TO_CHAR('04.0','99.9') FROM dual;
But it will not convert the string to decimal number. instead it
convert to a integer (4).
不是真的。显示的数字格式完全取决于客户端(SQL * plus / SQL Developer 等)并且与 Oracle 内部存储数字的方式无关,这取决于您为该列指定的精度.
无论客户端如何,为了以您想要的格式查看数字,并假设您所在地区的小数点分隔符是 '.'
(NLS_NUMERIC_CHARACTERS
是 '.,'
),您可以简单地使用 TO_CHAR
SELECT TO_CHAR('04.0','0D9') FROM dual;
4.0
像这样声明数字变量
number(4,1);
示例:
declare
pizza number(4,1);
begin
pizza := 4.1;
DBMS_OUTPUT.put_line(TO_CHAR(pizza,'0D9'));
end;
我想将字符串转换为保留一位小数的数字。 例如:
- 4 转换后 -> 4.0
- 4.1 转换后 -> 4.1
- 04.1 转换后 -> 4.1
- 04.0 转换后 -> 4.0
我试过了
SELECT TO_NUMBER('04.0','99.99') FROM dual;
但它不会将字符串转换为十进制数。相反,它转换为整数 (4)。
你可以试试TO_CHAR
SELECT TO_CHAR('04.0','99.9') FROM dual;
But it will not convert the string to decimal number. instead it convert to a integer (4).
不是真的。显示的数字格式完全取决于客户端(SQL * plus / SQL Developer 等)并且与 Oracle 内部存储数字的方式无关,这取决于您为该列指定的精度.
无论客户端如何,为了以您想要的格式查看数字,并假设您所在地区的小数点分隔符是 '.'
(NLS_NUMERIC_CHARACTERS
是 '.,'
),您可以简单地使用 TO_CHAR
SELECT TO_CHAR('04.0','0D9') FROM dual;
4.0
像这样声明数字变量
number(4,1);
示例:
declare
pizza number(4,1);
begin
pizza := 4.1;
DBMS_OUTPUT.put_line(TO_CHAR(pizza,'0D9'));
end;