日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP中用于精确计算的bcmath扩展

發(fā)布時間:2024/9/30 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP中用于精确计算的bcmath扩展 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.簡介

對于任意精度的數(shù)學(xué),PHP提供了支持用字符串表示的任意大小和精度的數(shù)字的二進(jìn)制計算,最多為2147483647-1(或0x7FFFFFFF-1)。本類函數(shù)僅在 PHP 編譯時配置了 --enable-bcmath 時可用。

PHP 的 Windows 版本已內(nèi)建對此擴(kuò)展的支持。不需要載入額外的擴(kuò)展來使用這些函數(shù)。

2.含義

(1)2個任意精度數(shù)字的加法計算

$v = bcadd(1.11,2.222,8); var_dump($v); //結(jié)果:string(10) "3.33200000"

(2)2個任意精度數(shù)字的減法計算

$v = bcsub(1.11,2.222,8); var_dump($v); //結(jié)果:string(11) "-1.11200000"

(3)2個任意精度數(shù)字的乘法計算

$v = bcmul(1.11,1.11,6); var_dump($v); //string(8) "1.232100"

(4)2個任意精度的數(shù)字除法計算

$v = bcdiv(1.11,2.2222,8); var_dump($v); //結(jié)果: string(10) "0.49950499"

(5)比較兩個任意精度的數(shù)字

$v = bccomp(1.11111,1.1112222); var_dump($v); //結(jié)果: int(0)

(6)任意精度數(shù)字的乘方

$v = bcpow(4.2,3,4); var_dump($v); //結(jié)果string(7) "74.0880"

(7)對一個任意精度數(shù)字取模

$v = bcmod(100.24,17,8); var_dump($v); //結(jié)果: string(11) "15.24000000"

(8)設(shè)置所有bc數(shù)學(xué)函數(shù)的默認(rèn)小數(shù)點(diǎn)保留位數(shù)

bcscale(8);//在當(dāng)前域中有作用函數(shù) $v = 3.1415926; var_dump($v); //結(jié)果double(3.1415926)

(9)返回操作數(shù)的二次方根

$v = bcsqrt(2,6); //√3 var_dump($v); //結(jié)果 string(8) "1.414213"

(10)先次方再取模

$a = bcpowmod(2, 4, 10,2); // 相當(dāng)于bcmod(bcpow(2,4),10,2) var_dump($a); //結(jié)果:string(4) "6.00"

使用場景:例如 計算發(fā)票稅需要保留8位小數(shù)
如果中間加入字符串會出現(xiàn)Fatal error

總結(jié)

以上是生活随笔為你收集整理的PHP中用于精确计算的bcmath扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。