一直使用自己做的“深山行者购物商城网站系统”为基础为基础来二次开发客户的商城系统,一直使用没有问题,本地也正常,其它客户也正常,可是最近遇到了一个客户说,在添加数据的时候如果添加的价格为小数,那么小数前面的零就显示不出来,
如客户添加:价格为:0.25元,结果前台显示:.25元,
access 数据库字段类型为: Num1 单精度型
这个问题的解决办法如下:
1. 在"控制面版"---"区域和语言选项"--"区域选项"---"自定义"---"数字"---"零起始显示"中选择0.7 <数字不定>(PS:本人通过重新启动,IIS重装,都没有成功,如有那位兄弟知道请告诉一声。)
2.或者使用FormatNumber 本人不是特别喜欢这个方法
response.write FormatNumber("要格式化的数字",保留的小数位数)
response.write FormatNumber("0.515151",3) 结果为:0.515
但是这个不好,当要格式化的数据是0.5时,它就会为你后面添加两个00,结果就是0.500,客户不想要见到这个效果,而且购买都也看不懂,所以我们再选择其它方法。
3.自己编写格式化函数(想到了四种情况,还没有其它情况还没有想出,如果有朋友想出来,告诉一声。)
以下为我自己用的数字格式化函数
=============================以下弄成asp文件测试
<%
a = "19.1218"
b = ".1218"
c = "00.1218"
d = "191218"
%>
<%response.write fmtumber(a)%><br /><br />
<%response.write fmtumber(b)%><br /><br />
<%response.write fmtumber(c)%><br /><br />
<%response.write fmtumber(d)%><br /><br />
<%
function fmtumber(nums)
nums = cstr(nums) '转换为字符
if instr(nums,".") > 0 then '如果中间有点号就说明是数字
if left(nums,1) = "." then '如果截取的第一个符号是点号,就说明点号前面的0被省略了,那下面就是添加一个 例: .1218
nums = "0" & nums
else
nums = nums '这里验证就是第一个符号不是点号,就直接显示数据 例:19.1218 00.1218
end if
else
nums = nums '没有点号直接显示数据 例:191218
end if
fmtumber = nums
end function
%>