ホームページ > バックエンド開発 > PHPチュートリアル > PHPでのこの使用法における浮動小数点演算の機能は何ですか?

PHPでのこの使用法における浮動小数点演算の機能は何ですか?

WBOY
リリース: 2016-06-23 13:41:15
オリジナル
857 人が閲覧しました

PHP で使用される浮動小数点演算関数とは何ですか?

まずは百度百科の浮動小数点演算の例をご覧ください

http://wenku.baidu.com/view/9ba120a108a1284ac85043d8.html?re=view

つまり、16 進数の 42C88000
は、IEEE754 標準の 32 ビット浮動小数点形式を使用して計算され、結果は 100.25 と等しくなります

16 進数の C1C90000 は、-25.125 と計算されます

既製の関数はありますか?

書くのを手伝ってください 例、ありがとう



ディスカッションへの返信 (解決策)
  function hexToDecFloat($strHex) {	$v = hexdec($strHex);	$x = ($v & ((1 << 23) - 1)) + (1 << 23) * ($v >> 31 | 1);	$exp = ($v >> 23 & 0xFF) - 127;	return $x * pow(2, $exp - 23);}$a='42C88000 ';echo hexToDecFloat($a); 
ログイン後にコピー

は 100.25 に等しい

$s = '42C88000';echo current(unpack('f', pack('V', hexdec($s))));
ログイン後にコピー
100.25
$s = 'C1C90000';echo current(unpack('f', pack('V', hexdec($s))));
ログイン後にコピー
-25.125


また、

$s = 'C1C90000';echo current(unpack('f', pack('H*', join('', array_reverse(str_split($s, 2))))));
ログイン後にコピー
-25.125

#1 コードは正の数
$a = 'C1C90000';echo hexToDecFloat($a);
ログイン後にコピー
-6.875 に対してのみ有効です

改善する必要があります

モデレーターさん、ご協力ありがとうございます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート