PHP 浮點數操作

2021-08-17 11:22:56 字數 708 閱讀 4965

<?php

$f = 3.14159;

//使用sprintf對浮點數小數點後三位四捨五入

$f_new = sprintf("%.3f",$f);

echo "3.14159小數點後三位四捨五入:".$f_new."

"; $f_round = round($f,3);

echo "3.14159小數點後三位四捨五入(round函式):".$f_round."

"; //進一法取浮點數的整數

$f_ceil = ceil($f);

echo "3.14159向上取整:".$f_ceil."

";

//捨去法取浮點數的整數

$f_floor = floor($f);

echo "3.14159向下取整:".$f_floor."

";

$f_intval = intval($f);

echo "3.14159取整數值:".$f_intval."

"; ?>

七麥資料面試上來問的第一題

當時一緊張只想起想起intval()……然而要求是小數點後四捨五入

回來查了一下, 小數點後四捨五入主要有sprintf()和round()兩個函式,sprintf除了處理四捨五入功能外還具有非常多的功能(之後填坑),round函式只能主要用於浮點數的四捨五入操作

浮點數操作

float fx 49.03f int nx fx 100 printf d nx 執行上述 結果 4902。用vc6.0,2005,gcc編譯執行結果都是一樣。為什麼會這樣呢,是因為浮點數運算具有不精確性。其實編譯上面的 編譯器會有警告的。warning c4244 initializing co...

php 浮點數運算

php r echo 0.1 0.7 0.8 true false 了解浮點運算的都不難理解以上 執行時會得到false 這是因為很多的10進製數都不能精確的轉成2進製,或如果要精確轉換的話需要的二進位制數太長,會捨棄掉末尾部分,只儲存一定的精度。比如0.1 十進位制 0.0001100 1100 ...

php比較浮點數

php手冊中有一句話,永遠不要比較兩個浮點數是否相等,但是在實際情況中,有時候還是會涉及到關於浮點數的運算和比較,當出現這種情況下,請使用bc math擴充套件函式或者gmp 函式。我們來看一種常見的情況 a 1.3 b 1.2 c 0.1 d a b if d c else printf 20f ...