通常交易中保留的數字的小數位數爲2位(即最小單位爲 1分錢【0.01元】)mysql
數據庫設計中預金錢有關或要求精準度要高的用 decimal(n,m) 表示,n表示保留的數字長度,保留的小數位數,如decimal(5,2) 對應的最大值 999.99sql
然而在mysql 中進行浮點數計算時,數據就須要進行截取保留數據庫
如下是一些保留小數位數的方法數據庫設計
mysql中:函數
方法一:truncate() 直接截取不四捨五入spa
select truncate(4545.1366,2);設計
運行結果:4545.13code
方法二:FORMAT() 四捨五入,整數部分超過三位的時候以逗號分割,而且返回的結果是string類型的。orm
select FORMAT(4545.1366,2);ci
運行結果:4,545.14
方法三:四捨五入 ,適合金錢保留計算
select convert(4545.1366,decimal(6,2));
運行結果:4545.14
備註:
MySQL 的CAST()和CONVERT()函數可用來獲取一個類型的值,併產生另外一個類型的值。
CAST
(value
as
type);
CONVERT
(value, type);
能夠轉換的類型(type
)是有限制的。這個類型能夠是如下值其中的一個:
PHP中:
四捨五入法:
$num = 4545.1366;
//第一種:利用round()對浮點數進行四捨五入
var_dump(round($num,2)); //float 4545.14
//第二種:利用sprintf格式化字符串
$format_num = sprintf("%.2f",$num);
var_dump($format_num); //string '4545.14'
//第三種:利用千位分組來格式化數字的函數number_format()
var_dump(number_format($num, 2)); //string '4,545.14'
//或者以下
var_dump(number_format($num, 2, '.', ''));// string '4,545.14'
//number_format(float number, int [decimals], string [dec_point規定用做小數點的字符串], string [thousands_sep規定用做千位分隔符的字符串,
//註釋:若是設置了該參數,那麼全部其餘參數都是必需的。])
不四捨五入: