php運算後保留一位,php保留2位小數

本文目錄一覽:

php 的位運算總結

php的位運算很少會用到,但是用處很大,

在有些算法中會用到,在權限管理中也會經常用到,

對於理解計算機的世界也會有一定的幫助,所以得把這些重要但不常用的東西總結一下記錄一下。

提到位運算,避不開的是二進制。

因為位運算是直接在內存做操作和運算,相較與直接拿兩個變量做運算符肯定是更快的。

很多地方把二進制這玩意說得很晦澀,現在來以最簡單的方式來總結一下,當然只算 int 範圍內的數算了,超過了這個範疇程序員還不如拿這時間去學點別的。

說完以上總結,再來解釋下什麼是二進制,網上大把,

但只要記住,int範圍內的數也就是我們大部分需要用到的數,都可以用二進制來表示。

我們生活中用到的計數方式為十進制,由個數位滿10進1,

然後再開始重新計算,等十位滿9再加一時,百位加一,十位歸零。

二進制則只有兩個數字來表示就是0和1,滿2進1。

由32個位組成,雖然只有32個位但已滿足了我們正常的需求了

比如說1轉換為2進制原碼,由於1是正數所以符號位為0,

原碼反碼補碼都一個樣。

1的原碼:00000000 00000000 00000000 00000001

因手懶,太多0太丑用+拼接,’0* 8’代表8個0

2的原碼:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二進制,

滿2就得進1,最低位歸0,向前加一。

再來解釋下負數的原碼反碼和補碼,就開始講php的位運算了。

二進制複習完畢。下面開始講講php的位運算。

php一共有六種位運算,一種一種來講。

可以這麼理解,兩個數的補碼放在一起比較每個位(一共32個位),

可以得出另外一個數,這個數字的組成由比較的兩位數字生成,

如果兩個數的每個位數上的數字都等於1的話,

那得到的那個數的補碼的同位為1,否則為0。

聽着繞口,其實很簡單,覺得還是比官網上的更容易讓新手看懂

下面舉例子:

首先來求-1和7的補碼。7的原碼就是補碼。

兩個補碼都有了下面開始運算:

按照上面的說法, 每個位都有一樣則 $a 的同等位則為1,剛好-1的補碼和7的補碼前面都不一樣,就最後三位一樣,所以剛好求得的 $a 的補碼的最後三位是1而其他的都是0 ,剛好這個補碼為正數,正好就是7。

其實就是和按位與相反,只要有1個為1,那就為1,如果都不為1,那就為0。

$a = -1|7 ;得出來的 $a 補碼為32個1,但此時不能說 $a 就是-1,因為這只是補碼,要轉成原碼再轉成十進制數,補碼-1,然後再翻轉,再轉出來,得到的其實也還是-1。

就是將這個數的補碼全部翻轉過來,包括符號位,0變1,1變0

取反的結果一定是整數變負數負數變正數,取正數的反時,

記得一定要從補碼一步步轉到原碼再轉成十進制數才是答案。

兩個數的補碼比較,同等位上的兩數比較

,不一樣時,則答案的補碼的同位則為1,否則為0。

往左移符號位被擠走右邊0補充,往右移動,符號位不動,

高位以符號位補充。二進制世界裏往左移動其實是相當於乘以了2,

右移相當於除以了2。

不吹牛逼的說,這應該是互聯網上最容易理解的php位運算的解釋和二進制的解釋了。

原文鏈接: php的位運算總結-PHP

php 科學計算法 科學記數法 E 保留 小數位數

#捨去

echo floor(4.3);   // 4

#進一

echo ceil(4.3);    // 5

#四捨五入

echo round(3.4);         // 3

echo round(3.5);         // 4

php如何保留一位小數,包括0,內詳?

PHP變量保留一位小數,包括0;可以考慮使用sprintf函數,控制浮點數格式。示例如下:

?php

header(“Content-type:text/html;charset=utf-8;”);

$money=20;

$money=sprintf(“%.1f”,$money);

echo $money;

//20.0

$money2=20.20;

$money2=sprintf(“%.1f”,$money2);

echo $money2;

//20.2

PHP初學者,四捨五入並且保留1位小數的函數

用round函數。

其中包含2個參數,第一個參數是要轉化的變量,第二參數是要保留的小數位數!

望採納,謝謝!

為什麼php用小數點相減不對呢

一則浮點數計算例子如下:

代碼如下:

$a = 0.2+0.7;

$b = 0.9;

var_dump($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_dump(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() 函數是按照指定的精度進行四捨五入,但保留小數點後一位,對我們的取整結果是沒影響的。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/193599.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 15:02
下一篇 2024-12-01 15:03

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種數據庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論