防止Oracle削减我的浮点数的前导零,如0.1 0.2 0.5等

时间:2012-02-20 09:34:43

标签: sql oracle floating-point

我有这样的oracle查询:

SELECT floatColum0,floatColum1,ROUND(floatColum2,2) from table;

返回的值如下:

.2 , 1.23, .23

我怎么能得到这样的东西? (领先零)

0.2, 1.23, 0.23 ?

3 个答案:

答案 0 :(得分:5)

不是前导零为cut的数字,而是数字的字符串表示。大多数情况下,这不是问题,因为应用程序逻辑与数据库中的数据一起使用,数据库与实际数据(在本例中为数字本身)一起使用而不是其字符串表示。但是如果你绝对需要这个,你可以在查询中格式化字符串:

SET numformat 99.99;
SELECT floatColum0,floatColum1,ROUND(floatColum2,1) from table;

这应该可以解决问题,但请记住,这是一个非常毫无意义的练习。有关其他详细信息:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#SQLRF00211

答案 1 :(得分:1)

我认为您的问题可能是区域设置。

制作本:

  1. 转到“控制面板”
  2. 区域和语言设置
  3. 自定义
  4. 显示前导零
  5. 并更改您想要的值。

答案 2 :(得分:0)

您可以尝试将其转换为varchar,如果第一个字符为',则使用case语句添加零。 (如果没有其他任何东西,则不加任何东西)。

我不是Oracle专家,但我认为你不能在不改变数据类型的情况下“添加”零。