mysql 和php 保留2位小數

2022-07-23 07:51:11 字數 1555 閱讀 5684

一般交易中保留的數字的小數字數為2位(即最小單位為 1分錢【0.01元】)

資料庫設計中預金錢有關或要求精準度要高的用 decimal(n,m) 表示,n表示保留的數字長度,保留的小數字數,如decimal(5,2) 對應的最大值 999.99

然而在mysql 中進行浮點數計算時,資料就需要進行擷取保留

以下是一些保留小數字數的方法

mysql中:

方法一:truncate() 直接擷取不四捨五入

select truncate(4545.1366,2);

執行結果:4545.13

方法二:format() 四捨五入,整數部分超過三位的時候以逗號分割,並且返回的結果是string型別的。

select format(4545.1366,2);

執行結果:4,545.14

方法三:四捨五入 ,適合金錢保留計算

select convert(4545.1366,decimal(6,2));

執行結果:4545.14

備註:mysql 的cast()和convert()函式可用來獲取乙個型別的值,並產生另乙個型別的值。

cast(valueastype);

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規定用作千位分隔符的字串,

//注釋:如果設定了該引數,那麼所有其他引數都是必需的。])

不四捨五入:

$format_num = sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -1));

var_dump

($format_num

); //string '4545.13'

取整ceil() 向上取整

floor() 向下取整

php保留兩位小叔 php怎麼保留2位小數

方法 1 使用round 函式進行四捨五入,語法 round 浮點數,2 2 利用sprintf 函式,語法 sprintf 2f 浮點數 3 使用format 函式進行四捨五入,語法 format 浮點數,2 php怎麼保留2位小數?num 4.30258 第一種 利用php round方法對浮點...

JS保留2位小數

js保留兩位小數 對於一些小數點後有多位的浮點數,我們可能只需要保留2位,但js沒有提供這樣直接的函式,所以我們得自己寫函式實現這個功能,如下 function changetwodecimal x var f x math.round x 100 100 return f x 功能 將浮點數四捨五...

C 保留2位小數

場景1 c 保留2位小數,tostring f2 確實可以,但是如果這個數字本來就小數點後面三位比如1.253,那麼轉化之後就會變成1.25.可不可以剛好保留到最後一位不是0的位置?預設保留2位,如果真的有3位小數,就保留3位,有4位就保留4位。先說一下tostring 0.00 中0和 的區別 0...