输入框的格式问题!

rockajone 2010-07-11 08:56:14
做了一个input 类型是text 输入数据0.1,到数据库里一看变成.1了,数据库对应的格式是双精度的,不知道如何处理?请教大虾!
...全文
66 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
在程序里转换。
楼主基础缺环节啊。
数字就是这样的。无论你是什么程序,什么软件,默认就是这样的形式。
所以所有程序在显示的时候,都会formatNumber。
4楼虽然给出第一种方法也可能起作用,但基本都是要用程序来做。因为如果你程序发布到别处,你就不一定能够去更改人家服务器的设置了,或者会忘掉,还是从程序上明确转换保险。
回复
lbcleo 2010-07-12
[Quote=引用 4 楼 lzp4881 的回复:]
法1:

在"控制面版"---"区域和语言选项"--"区域选项"---"自定义"---"数字"---"零起始显示"中选择0.xx

法2:

如果在做了法1之后还不行,就需要在程序里处理:

if DataValue<1 then
if left(DataValue,1)<>"0" then
DataValue="0"&DataValue
end if
end ……
[/Quote]
```````````
回复
craft001wen 2010-07-12
看看你ACCESS字段,是什么格式,一般用CHAR型就可以了,对数字也不会敏感
回复
SNOYC 2010-07-12
这个应该是ACCESS本身设置的问题,你可以去看看,应该跟系统区域无关
回复
lzp4881 2010-07-11
法1:

在"控制面版"---"区域和语言选项"--"区域选项"---"自定义"---"数字"---"零起始显示"中选择0.xx

法2:

如果在做了法1之后还不行,就需要在程序里处理:

if DataValue<1 then
if left(DataValue,1)<>"0" then
DataValue="0"&DataValue
end if
end if

--------------------------------------------------------

其实还有种情况可能会同时出现,那就是你填的是1.30,但在asp里只显示1.3,如果必须要显示1.30,可以这样做:

''小数点后不足2位的,自动补0
if len(DataValue)-instr(DataValue,".")<2 then
DataValue=formatNumber(DataValue,2,-1)
end if

综合上面2种问题,整合解决方法:

if int(DataValue)<>DataValue then
''小数点后不足2位的,自动补0
if len(DataValue)-instr(DataValue,".")<2 then
DataValue=formatNumber(DataValue,2,-1)
end if

''小数点前没有0的小数补0
if DataValue<1 then
if left(DataValue,1)<>"0" then
DataValue="0"&DataValue
end if
end if
end if

回复
duqiangcise 2010-07-11
access就不清楚了,我用的是oracle。不过他们都应该差不多。
我估计也应该是access数据库的对应数据字段的格式设置问题。
回复
rockajone 2010-07-11
数据库是ACCESS的,我打开数据库看是变成.1了,而且通过表格显示出来的数据也是.1
回复
duqiangcise 2010-07-11
这个问题可能是你的数据库的问题。
你用sqlplus查询一下对应的字段,看在sqlplus中的显示是否正确。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告