場景:單價的處理
如:單價需要精確到小數字7位,未來計算精確,mysql中定義的型別為decimal,
結果在介面回顯的時候,輸入的值:0.001 儲存資料庫中是0.0010000 希望結果為0.001 ,
如輸入的值是:20.00 儲存資料庫中是20.0000000 希望回顯結果是20.00
由於輸入的值隨機性強,特別是如果輸入0, 回顯時候變成oe-7 超級鬱悶。。。
反思苦想,只能在mysql中處理,比較好!
解決方法:
1:先把資料轉換成字串:如:select concat(2,'');
其實在windows 中 此步驟可省略。
2:去除位數為0的字元
如:
select trim(trailing '0' from '20.00')
3: 由於輸入20.00 在進行第2步的時候 變成了"20. " 必須加上00 得出結果20.00
如:1、
select case when (select substring_index((select trim(trailing '0' from '20.00100')), '.', -1))=""
then (select concat( (select trim(trailing '0' from '20.00100')),"00") )
else ( select trim(trailing '0' from '20.00100') )
end
2.、
select case when (select substring_index((select trim(trailing '0' from '20.00')), '.', -1))=""
then (select concat( (select trim(trailing '0' from '20.00')),"00") )
else ( select trim(trailing '0' from '20.00') )
end
大家可以比對下2個sql輸入的結果了
其中用到的語句:
-- 替換尾數為0
select trim (trailing '0' from '20.00')
-- 獲取 . 後面的字元
select substring_index((select trim(trailing '0' from '20.00100')), '.', -1)
-- 簡單點
select substring_index('iteye.com', '.', -1)
另外判斷為"" 就用case when 了,這個就不舉例了,在前面語法中已經提到。 python小數點 python 小數點問題
我想生成一組小數,大小為從0到1,間隔為0.2,即 0,0.2,0.4,0.6,0.8,1 1.while迴圈生成 a list i 0 while i 1 i 0.2 print a list 列印結果為 0,0.2,0.4,0.6000000000000001,0.8,1.0 奇怪,為什麼會有0...
判斷是否有小數 Excel教程 提取小數點
excel 教程 計算機應用 下面我們來分析一下下圖中的樣品資料,取提取的內容,我們可以思考一下有多少種方法來操作。中a列的資料,只需要小數部分,你會用什麼函式公式來提取?下面,我將以3種方法來展示。我第一反應想到的是使用mod函式,它的用法是 返回兩數相除的餘數,mod 被除數,除數 我們經常用是...
討厭的小數點
小明一直很討厭小數點,一看到小數點就頭疼。不幸的是,小紅給他出了乙個題目,問他 給你乙個小數x,你能算出小數點後第n位是什麼嗎?1 n 6 小明看到此題後,瞬間頭疼暈倒,你能幫幫他嗎?首先輸入乙個t,表示有t組資料,跟著t行 每行輸入乙個小數 輸入資料保證一定是a.b的形式,為了簡單化問題,沒有迴圈...