
一直使用自己做的“深山行者購物商城網站系統”為基礎為基礎來二次開發客戶的商城系統,一直使用沒有問題,本地也正常,其它客戶也正常,可是最近遇到了一個客戶說,在添加數據的時候如果添加的價格為小數,那么小數前面的零就顯示不出來,
如客戶添加:價格為: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
%>
您發布的評論即表示同意遵守以下條款:
一、不得利用本站危害國家安全、泄露國家秘密,不得侵犯國家、社會、集體和公民的合法權益;
二、不得發布國家法律、法規明令禁止的內容;互相尊重,對自己在本站的言論和行為負責;
三、本站對您所發布內容擁有處置權。