PHP實現大數 浮點數 取餘的方法

2022-09-28 21:06:20 字數 770 閱讀 4435

一般我們進行取餘運算第乙個想到的就是用百分號%,但當除數是個很大的數值,超出了int範圍時,這樣取餘就不準確了。

php大數(浮點數)取餘函式:

/*** php大數取餘

* * @param int or float $bn 除數

* @param int $sn 被除數

* @return int 餘數

*///大數(浮點數)取餘方法

function kmod($bn,程式設計客棧 $sn)

測試**:

//大數(浮點數)取餘方法

function kmod($bn, $sn)

//整數取餘方法

function程式設計客棧 mod($bn, $sn)

//最大的int整數

$bn = php_int_max;

$sn = 11;

var_dump($bn);

var_dump(kmod($bn, $sn));

var_dump(mod($bn, $sn));

//給最大的int整數加1

$bn = php_int_max + 1;

var_dump($bn);

var_dump(kmod($bn, $sn));

var_dump(mod($bn, $sn));

執行結果:

int 2147483647

int 1

int 1

float 2147483648

int 2

int -2

浮點數取整方法

1.直接賦值給整數變數。如 int i 2.5 或 i int 2.5 是x的整數部分。2.使 用 floor函 數 floor x 返回的是小於x的最大整數部分。如 floor 2.5 2 floor 2.5 3 floor 是向負無窮大捨入,floor 10.5 11 3.使用ceil函式。ce...

php 浮點數比較方法

首先看乙個例子 a 0.1 b 0.9 c 1 var dump a b c var dump c b a a b c 返回true,正確 c b a 返回false,錯誤 為什麼會這樣呢?運算後,精度為20位時實際返回的內容如下 a 0.1 b 0.9 c 1 printf 20f a b 1.0...

浮點數的大數加法

include stdafx.h include include include include include include include using namespace std std ifstream cin in.txt std ofstream cout out.txt std str...