有關浮點數的細節
1:浮點數不應直接進行大小比較!
先看一個現象:
可見:浮點數直接進行比較是「不可靠的」。
原因是:浮點數在內存中的二進位形式(最底層的形式),是不精確的,比如:
那如果需要(其實這很常見)進行浮點數比較,該怎麼辦?
考慮現實應用所需的精度要求的基礎上,來講他們轉換為整數後進行比較!
比如:
要求精確到3位小數,就都乘以1000後取整再比較;
要求精確到2位小數,就都乘以100後取整再比較;
要求精確到4位小數,就都乘以10000後取整再比較;
舉例:
字符串類型
· 單引號字符串:
· 雙引號字符串:
· 定界符字符串heredoc:
還可以使用特定形式的字符串,被稱為定界符字符串,有兩種:heredoc, nowdoc
形式:
$s1 = <<<「標識符」
字符串內容。。。。
標識符;
舉例:
結果:
· 定界符字符串nowdoc:
形式:
$s1 = <<<『標識符』
字符串內容。。。。
標識符;
舉例:
結果為:
可見:在單引號定界符(nowdoc)中,有一個特點就是:寫什麼就是什麼!
雙引號字符串中識別變量的演示:
類型轉換問題
php是一種弱類型語言,其特點是:變量可以存儲任何類型,而不受限制!
有兩種類型轉換:
自動轉換
自動轉換,是指,沒有轉換語法,但在具體的語句(或表達式)中,會根據具體的情形,將某種類型的數據,轉換為另一種類型,然後進行運算。
典型情況是:某種運算符「理應」使用某種類型的數據,但給定的數據不是該種類型,就是發生自動轉換;
$v1 = 「abc」 * 「def」; //這裡就會發生自動轉換,2個字符串其實都轉換為0然後進行運算
$v2 = 「2」 * 「3」; //這裡也會發生自動轉換,結果是6
強制轉換:
就是,使用特定的語法,將某個數據,從其「原來的類型」,轉換為設定的目標類型;
形式如下:
(目標類型) 數據