1. php小數與整數相加,希望高手幫幫忙
<?php
$a=1.5;$b=2;$c=1.4;
echo$a+$b+$c;
?>
2. php 科學計演算法 科學記數法 E 保留 小數位數
#捨去
echofloor(4.3);//4
#進一
echoceil(4.3);//5
#四捨五入
echoround(3.4);//3
echoround(3.5);//4
3. php中數字運算問題
ceil
(PHP 3, PHP 4 , PHP 5)
ceil -- 進一法取整
說明
float ceil ( float value)
返回不小於 value 的下一個整數,value 如果有小數部分則進一位。ceil() 返回的類型仍然是 float,因為 float 值的范圍通常比 integer 要大。
例子 1. ceil() 例子
<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
?>
參見 floor() 和 round()。
4. 為什麼php用小數點相減不對呢
一則浮點數計算例子如下:
代碼如下:
$a = 0.2+0.7;
$b = 0.9;
var_mp($a == $b);
列印出的結果是:bool(false)。也就是說在這里 0.2+0.7 的計算結果與 0.9 並不相等,這顯然是有違我們的常識的。
對此問題,PHP官方手冊曾又說明:顯然簡單的十進制分數如 0.2 不能在不丟失一點點精度的情況下轉換為內部二進制的格式。這和一個事實有關,那就是不可能精確的用有限位數表達某些十進制分數。例如,十進制的 1/3 變成了 0.3333333...。
我們將上面的變數用雙精度格式列印出來:
代碼如下:
$a = 0.2+0.7;
$b = 0.9;
printf("%0.20f", $a);
echo '<br />';
printf("%0.20f", $b);
輸出結果如下:
代碼如下:
0.89999999999999991118
0.90000000000000002220
顯然在這里,實際上作為浮點型數據,其精度已經損失了一部分,達不到完全精確。所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。需要說明的是,這不是PHP的問題,而是計算機內部處理浮點數的問題!在 C、JAVA 等語言中也會遇到同樣的問題。
所以要比較兩個浮點數,需要將其控制在我們需要的精度范圍內再行比較,因此使用 bcadd() 函數來對浮點數想加並進行精度轉換(為字元串):
代碼如下:
var_mp(bcadd(0.2,0.7,1) == 0.9); // 輸出:bool(true)
浮點數取整
在《PHP 取整函數 ceil 與 floor》一文中,曾有例子:
代碼如下:
<?php
echo ceil(2.1/0.7); // 輸出:4
?>
經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的:
代碼如下:
<?php
printf("%0.20f", (2.1/0.7)); // 輸出:3.00000000000000044409
?>
經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的,因此使用 round() 函數處理一下即可:
代碼如下:
<?php
echo ceil( round((2.1/0.7),1) );
?>
雖然 round() 函數是按照指定的精度進行四捨五入,但保留小數點後一位,對我們的取整結果是沒影響的。
5. php中如何計算圓的面積且保留兩位小數
PHP 中的 round() 函數可以實現
round() 函數對浮點數進行四捨五入。
round(x,prec)
參數說明
x 可選。規定要舍入的數字。
prec 可選。規定小數點後的位數。
返回將 x 根據指定精度 prec (十進制小數點後數字的數目)進行四捨五入的結果。prec 也可以是負數或零(默認值)。
注釋:PHP 默認不能正確處理類似 "12,300.2" 的字元串。
例如:
輸出: -4.64
6. 請教,php保留兩位小數,但不四捨五入
使用bc一類的函數,按字元串方式運算即可。
/**
*數值非四捨五入保留兩位小數
*@authorZjmainstay
*@websitehttp://www.zjmainstay.cn
*@param$num數值
*@return保留兩位小數
*/
functiongetNum($num,$scale=2){
$numStr=(string)$num.str_repeat('0',$scale);
//匹配精度前的數值
if(preg_match('#^d+.d{0,'.$scale.'}#',$numStr,$match)){
return$match[0];
}else{
return'0';
}
}
echogetNum(10.0253)." ";
echogetNum(0.5)." ";
7. php計算後如何取小數點前面的
<?php echo ceil($kkoi+$userid); ?>
上述ceil是系統四捨五入方法
8. 在PHP中怎麼取小數點後的位數,如:23.43453 要保留兩位小數怎麼取
round(23.43453,2);
四捨五入保留小數點後兩位
9. 怎麼用php編寫加減乘除
可以參考下面的代碼:
<?php
$a = 1;
$b = 2;
加法: $sum = $a + $b;
減法: $sum = $a - $b;
乘法: $sum = $a * $b;
除法: $sum = $a / $b;
(9)php小數運算擴展閱讀:
PHP的加密函數有crypt()、 md5() 和sha1() 這3種, 其中crypt() 用於單向加密, 所謂的單向加密就是將需要加密的內容進行加密之後, 無法將密文轉換成為可讀的內容, 因此單向加密的應用范圍較狹窄, 一般用於用戶名認證和密碼輸入等情況。
當用戶進入系統時,只需要將密文口令輸 入,經過系統驗證與存儲的口令一致, 即可通過。
sha1() 函數使用了SHA-1的散列演算法,其原理與md5() 類似。
10. php中3個小數的計算,如134.7-52.5 - 82.2,為什麼結果不是0而是一個奇怪的科學計數法
樓上的回答很詳細了,而且,這不僅僅是php的問題,你在js里console.log(134.7-52.5 - 82.2)
也得不到0的,