ホームページ  >  記事  >  バックエンド開発  >  一般的な PHP 数学関数と BC の高精度数学関数の例を共有する

一般的な PHP 数学関数と BC の高精度数学関数の例を共有する

小云云
小云云オリジナル
2018-01-06 16:16:081925ブラウズ

この記事では、主に一般的な PHP 数学関数と BC 高精度数学関数の使用法を紹介し、一般的な PHP 数学演算関数を簡単にリストし、BC 高精度関数の関数と使用スキルを例の形式で説明します。皆さんの参考になれば幸いです。

この記事の例では、一般的な PHP 数学関数と BC 高精度数学関数の使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1. bcadd は任意精度の数値の加算です
2. bcsub は任意の精度の数値の減算です
3. bcmul は乗算です
4. bcmod は残りです。 (% より強力)
5. bcpow 累乗関数演算
6. bcsqrt 平方根演算
7. sin cos tan asin acos atan (ラジアンで表現)
deg2rad 角度をラジアンに変換します。 rad2deg ラジアンを角度に変換します

exponent

自然対数を見つけるにはlog、10の底の対数を見つけるにはlog10

expを底としてeのべき乗



さまざまな数系変換

base_convertユニバーサル任意数系変換bindec 2進数を10進数に変換

decbin 10進数を2進数に変換

dechex 10進数を16進数に変換
decoct 10進数を8進数に変換

hexdec 16進数を10進数に変換

octdec 8進数を10進数に変換

BC高精度関数の使用例:





<?php
 /***************************************************************************************
 *php BC高精确度函数库
 *php bc math 包含了:相加,比较,相除,相减,求余,相乘,n次方,配置默认小数点数目,求平方
 *这些函数在涉及到有关金钱的计算时比较有用
 ***************************************************************************************
 *两个高精度数比较
 *工作中遇到一种情况,0.00 != 0
 *int bccomp ( string $left_operand , string $right_operand [, int $scale ] )
 *$left=$right 返回 0
 *$left<$right 返回 -1
 *$left>$right 返回 1
 *$scale 小数点位数
 ***************************************************************************************/
$a = 4.45;
$b = 5.54;
if(bccomp($a, $b, 2) == 0)
{
 echo "完全相等";
}
/***************************************************************************************
 *两个高精度数相加
 *string bcadd ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale 返回的小数点个数
 ***************************************************************************************/
$a = 1.0321456;
$b = 0.0123456;
$c = bcadd($a, $b, 2);
var_dump($c);
/***************************************************************************************
 *两个高精度数相减
 *sstring bcsub ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale 返回的小数点个数
 ***************************************************************************************/
$a = 1.0321456;
$b = 3.0123456;
$c = bcsub($a, $b, 2);
var_dump($c);
/********************************************************
 *两个高精度数求余/取模
 *string bcmod ( string $left_operand , string $modulus )
 *******************************************************/
$a = 6;
$b = 4;
$c = bcmod($a, $b);
var_dump($c);
/***************************************************************************************
 *两个高精度数相除
 *string bcp ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale小数点位数默认为 0
 ***************************************************************************************/
 $a = 6;
 $b = 5;
 $c = bcp($a, $b, 3);
 var_dump($c);
/***************************************************************************************
 *两个高精度数相乘
 *string bcmul ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale小数点位数默认为 0
 ***************************************************************************************/
$a = 3.1415926;
$b = 2.4569874566;
$c = bcmul($a, $b, 6);
var_dump($c);
/***************************************************************************************
 *两个高精度数的次方值
 *string bcpow ( string $left_operand , string $right_operand [, int $scale ] )
 *$scale小数点位数默认为 0
 ***************************************************************************************/
$a = 3.1415926;
$b = 2;
$c = bcpow($a, $b, 3);
var_dump($c);
/**************************************************
 *求高精度数的平方根
 *string bcsqrt ( string $operand [, int $scale ] )
 *$scale小数点位数默认为 0
 ***************************************************/
$b = bcsqrt($a, 6);
var_dump($b);
/******************************
 *设置bc函数的小数点位数
 *bool bcscale ( int $scale )
 *$scale小数点位数默认为 0
 ******************************/
bcscale(2);
?>

実行結果:

string(4) "1.04"
string(5) "-1.98"
string(1) "2"
string(5) "1.200"
string(8) "7.718853"
string(5) "9.869"
string(8) "1.772453"

関連推奨事項:

php高精度数学関数ライブラリ関数の概要

MySQL数学関数の簡単な概要

php数学関数拡張

以上が一般的な PHP 数学関数と BC の高精度数学関数の例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。