php 言語は、文字列形式で記述された任意のサイズと精度の数値をサポートする、任意精度の数学計算用のバイナリ計算機 (Binary Calculator) を提供します。
phpでは、BC高精度関数ライブラリという高精度関数ライブラリが提供されています。 これには、加算、比較、除算、減算、剰余、乗算、n 乗、デフォルトの小数点数の設定、二乗などの計算が含まれます。これらの関数は、お金が絡む計算をする場合に便利です。
これらの高精度関数の概要は次のとおりです:
1. bcadd 2 つの高精度数値を加算します
構文形式は次のとおりです:
string bcadd ( string left_operand, string right_operand [, int scale] )
戻り値: String
関数の種類: 数学的演算
内容の説明: この関数は 2 つの高精度数値を加算し、2 つの文字列を渡し、結果を文字列として返します。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。
以下はそれを示すコード例です:
<?php $a = 1.0321456; $b = 0.0123456; $c = bcadd($a, $b, 2); //var_dump($c); ?>
2. bccomp 2つの高精度数値を比較します
構文形式は次のとおりです:
int bccomp ( string left_operand, string right_operand [, int scale] )
戻り値: 整数
関数の種類: 数学的演算
内容説明: この関数は 2 つの数値を高精度で比較します。 2 つの文字列を入力すると、左の数値文字列 (左のオペランド) が右の数値文字列より大きい場合は 0 が返され、左の数値文字列が右の数値文字列より小さい場合は +1 が返されます。右のものは -1 を返します。 scale は、戻り値の小数点以下の桁数を示すオプションのオプションです。簡単に言うと、 $left=$right は 0 を返し、 $leftb6dc80bb04d598aae5c9ad3701fde7cd$right は 1 を返します。
サンプルコードは次のとおりです:
<?php $first = '2.2'; $second = '13.00'; $third = '10.80'; $sub = $second - $third; echo '$first,$sub两个数相比较:<br/>'; echo bccomp($first,$sub,2); echo '<br/>'; echo '$first,$second两个数相比较:<br/>'; echo bccomp($first,$second,2); echo '<br/>'; echo '$second,$third两个数相比较:<br/>'; echo bccomp($second,$third,2); echo '<br/>'; ?>
3. bcsub 2つの高精度数値を減算します
構文形式は次のとおりです:
string bcsub ( string left_operand, string right_operand [, int scale] )
戻り値: String
関数の種類: 数学的演算
説明: この関数は 2 つの高精度数値を減算し、2 つの文字列を渡し、左 (左オペランド) の値から右 (右オペランド) の値を減算します。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。
サンプルコードは次のとおりです:
<?php $a = 1.0321456; $b = 3.0123456; $c = bcsub($a, $b, 2); var_dump($c); ?>
4. bcmul 2つの高精度数値の乗算
構文形式は次のとおりです:
string bcmul ( string left_operand, string right_operand [, int scale] )
戻り値: String
関数の種類: 数学的演算
内容の説明: この関数は 2 つの高精度数値を乗算し、2 つの文字列を渡し、左側の数値文字列 (左オペランド) と右の数値文字列 (右オペランド) を乗算します。結果も文字列として返されます。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。デフォルトの小数点以下の桁数は 0 です。
コード例は次のとおりです:
<?php $a = 3.1415926; $b = 2.4569874566; $c = bcmul($a, $b, 6); //var_dump($c); ?>
5. bcdiv 2つの高精度数値を除算します
構文形式は次のとおりです:
string bcdiv ( string left_operand, string right_operand [, int scale] )
戻り値: String
関数の種類: 数学的演算
内容の説明: この関数は 2 つの高精度数値を除算し、2 つの文字列を渡し、左側の数値文字列 (左オペランド) を右の数値文字列 (右オペランド) で除算します。結果も文字列として返されます。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。デフォルトの小数点以下の桁数は 0 です。
コード例は次のとおりです:
<?php $a = 6; $b = 5; $c = bcdiv($a, $b, 3); //var_dump($c); ?>
6. bcmod 高精度数値の剰余/剰余を取得します
構文形式は次のとおりです:
string bcmod ( string left_operand, string modulus )
戻り値: String
関数の種類: 数学演算
内容の説明: 左オペランドを法で割った余りの文字列を取得します。
コード例は次のとおりです:
<?php $a = 6; $b = 4; $c = bcmod($a, $b); //var_dump($c); ?>
7. bcpow 高精度デジタル電力値を検索します
構文形式は次のとおりです:
string bcpow ( string x, string y [, int scale] )
戻り値: String
関数の種類: 数学的演算
内容の説明: この関数は、高精度の数値 x の y 乗を求めます。結果も文字列として返されます。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。デフォルトの小数点以下の桁数は 0 です。
コード例は次のとおりです:
<?php $a = 3.1415926; $b = 2; $c = bcpow($a, $b, 3); //var_dump($c); ?>
8.bcsqrt 高精度数値の平方根を求めます
構文形式は次のとおりです:
string bcsqrt ( string operand [, int scale] )
戻り値: String
関数の種類: 数学的演算
内容説明 : この関数は数値の平方根を高精度で求めます。 scale は、戻り値の小数点以下の桁数を表すオプションのオプションです。デフォルトの小数点以下の桁数は 0 です。
コード例は次のとおりです:
<?php $b = bcsqrt($a, 6); //var_dump($b); ?>
9. bcscale 構成プログラム内のすべての BC 関数ライブラリの小数点以下のデフォルトの桁数
構文形式は次のとおりです:
bool bcscale ( int scale )
戻り値: boolean
関数の種類: 数学的演算
内容说明: 配置所有返回值的小数点后所需的位数。之后程序若无特别指定,则依此配置的小数点位数。
其实例代码如下所示:
<?php bcscale(3); echo bcdiv('105', '6.55957'); // 16.007 ?>
【相关教程推荐】
2. php实战视频教程
以上がPHP高精度数学関数ライブラリ関数概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。