今天在開發(fā)微信小程序商品購買功能時(shí),出現(xiàn)錯(cuò)誤提示:VM1848 WAService.js:2 TypeError: xxx.toFixed is not a function
根據(jù)提示信息的意思是找不到相應(yīng)的函數(shù),toFixed函數(shù)是JS自帶的啊,肯定不會(huì)出現(xiàn)找不到函數(shù)這種問題呢。
查看了問題代碼部分,寫法是肯定沒問題的,然后追蹤了數(shù)據(jù),原來是保留兩位小數(shù)的值是字符串類型了,這不可能啊,保存數(shù)據(jù)庫字段明明是float類型呢,然后查看了后端PHP代碼,加了intval()函數(shù)去轉(zhuǎn)換就沒問題了。
這個(gè)想了想,應(yīng)該是json_encode后把float類型直接轉(zhuǎn)換成字符串類型了,然后就出現(xiàn)了開頭的錯(cuò)誤。
找到了問題所在就好辦了,float類型通過intval函數(shù)去轉(zhuǎn)換用來測試可以,但不能通過這樣方法來解決問題,因?yàn)榇鎓loat類型有可能會(huì)出現(xiàn)小數(shù)后的數(shù)值,如數(shù)據(jù)庫保存10.80元,這樣通過intval函數(shù)轉(zhuǎn)換后值就直接成10元這樣了。
在微信小程序端出問題,當(dāng)然是在微信小程序端去解決,只要加個(gè)字符串轉(zhuǎn)數(shù)值型即可,
js用保留兩位小數(shù)前先用parseFloat函數(shù)把字符串類型轉(zhuǎn)換成float類型后即可。
終于在第一次加載時(shí)就保存兩位小數(shù),如下圖:
