oracle 保留小数问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 保留小数问题相关的知识,希望对你有一定的参考价值。
如图,是一个number类型的数除以一个很大的数得到的。。怎么能让他转换成正常的数字呢? round也不行。。这就是round后的结果
参考技术A 数据类型定义一下,例如number(p.s)数据的总位数是p
对s分2种情况:
1. s>0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。
2. s<0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
number(10,2)就是总共10位数,并精确到小数点后两位。希望对你有帮助。 参考技术B number类型最大值是10的28次方-1,有效位是15。当数值很大或很小时(不考虑正负),在满足数值大小原则基础上,尽可能按科学计数法显示。看一下下面的例子:
SQL> select 0.00000000000004 n1,0.10000000000004 n2 from dual;
n1 n2
----------- -------------------------
4E-14 0.10000000000004
n2的值无法用科学计数法显示,因为它要保证14位有效数是正确的。本回答被提问者和网友采纳 参考技术C number(10,2) :10指数字中的有效位,2值小数点右边的位数 参考技术D 看不见图,但是我猜的到是什么问题。
你定义的变量没定义成可带小数的吧。例如number(10,2)追问
10,2 怎么解释
第5个回答 2012-11-29 存为varchar类型 就解决了。jsp小数显示问题 例如 我在oracle 数据库中查询出来的是 0.01 但是在jsp页面上就显示成 .01 没有前面的0
控制保留几位有效小数的js函数//Code CreateBy abandonship 2007.03.12
function FormatAfterDotNumber( ValueString, nAfterDotNum )
var ValueString,nAfterDotNum ;
var resultStr,nTen;
ValueString = ""+ValueString+"";
strLen = ValueString.length;
dotPos = ValueString.indexOf(".",0);
if (dotPos == -1)
resultStr = ValueString+".";
for (i=0;i<nAfterDotNum ;i++)
resultStr = resultStr+"0";
return resultStr;
else
if ((strLen - dotPos - 1) >= nAfterDotNum )
nAfter = dotPos + nAfterDotNum + 1;
nTen =1;
for(j=0;j<nAfterDotNum ;j++)
nTen = nTen*10;
resultStr = Math.round(parseFloat(ValueString)*nTen)/nTen;
return resultStr;
else
resultStr = ValueString;
for (i=0;i<(nAfterDotNum - strLen + dotPos + 1);i++)
resultStr = resultStr+"0";
return resultStr;
应用时只需要FormatAfterDotNumber( ’数字字符串’, 保留小数位数 );
for example:
<html>
<head>
<SCRIPT LANGUAGE="JAVAscript">
<!--调用上面的函数 -->
</script>
</head>
<body>
<input type="text" name="strTemp">
<input type="button" onclick="alert( FormatAfterDotNumber( document.all. strTemp.value), 保留小数位)" >
</body>
</html>追问
我的那个在数据库里的时候是0.01 但是jsp页面就是 .01了 这个跟你说的一样是吗?还有 我的接值 是用
接值的 到时候怎么调用啊
以上是关于oracle 保留小数问题的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库中的如何保留两位小数 并且在java中保留两位小说插入数据表中
oracle:求百分比,保留小数点后两位,不会出现.01的情况,也不会出现#######的情况,写一条sql语句