PHP 8.3.4 Released!

bcpow

(PHP 4, PHP 5, PHP 7, PHP 8)

bcpowKeyfi duyarlıklı sayılar için üs alma işlemi yapar

Açıklama

bcpow(string $taban, string $üs, ?int $basamak = null): string

tabanın üssünü hesaplar.

Bağımsız Değişkenler

taban

Dizge olarak taban.

üs

Dizge olarak üs. Üs tamsayılardan oluşmuyorsa tamsayı olmayan kısım kırpılır. Üssün geçerli aralığı platforma özgüdür, ancak en azından -2147483648 ile 2147483647 arasındadır.

basamak

Bu seçimlik bağımsız değişken ondalık iminin sağında kaç hane gösterileceğini belirler. Kullanılmazsa, betik genelinde geçerli olacak şekilde bcscale() işleviyle atanabilir, bu da yapılmazsa son çare değeri 0 geçerli olur.

Dönen Değerler

Sonucu dizge olarak döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
7.3.0 bcpow() artık sayıların ondalık basamak sayısını dikkate alıyor. Daha önce, döndürülen sayılarda sondaki ondalık sıfırları yoksayabiliyordu.

Örnekler

Örnek 1 bcpow() örneği

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Notlar

Bilginize:

PHP 7.3.0 öncesinde bcpow() ondalık noktadan sonraki basamak sayısını basamak ile belirtilenden daha az sayıda döndürebiliyordu. Artık sadece basamak ile belirtilenden daha azı ile gereken hassasiyet sağlanabildiği takdirde bu olmaktadır. Örnek:

Örnek 2 bcpow() basamak örneği

<?php
echo bcpow('5', '2', 2); // "25" basar, "25.00" değil
?>
+

Ayrıca Bakınız

  • bcpowmod() - Önce bir keyfi duyarlıklı sayının diğerine göre üs alma işlemini yapar, sonra sonucun modüle göre kalanını bulur
  • bcsqrt() - Keyfi duyarlıklı bir sayının karekök alma işlemini yapar

add a note

User Contributed Notes 3 notes

up
-1
Michael Bailey (jinxidoru at byu dot net)
19 years ago
bcpow() only supports exponents less than or equal to 2^31-1. Also, bcpow() does not support decimal numbers. If you have scale set to 0, then the exponent is converted to an interger; otherwise an error is generated.

--
Michael Bailey
http://www.jinxidoru.com
up
-2
thomas at tgohome dot com
14 years ago
<?php

bcscale
(100);

/*
* Computes the natural logarithm using a series.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bcln($a, $iter = 10)
{
$result = "0.0";

for(
$i = 0; $i < $iter; $i++)
{
$pow = (1 + (2 * $i));
$mul = bcdiv("1.0", $pow);
$fraction = bcmul($mul, bcpow(bcsub($a, "1.0") / bcadd($a, "1.0"), $pow));
$result = bcadd($fraction, $result);
}

return
bcmul("2.0", $result);
}

/*
* Computes the base2 log using baseN log.
* @note Requires above functions.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bclog2($a, $iter = 10)
{
return
bcdiv(bcln($a, $iter), bcln("2", $iter));
}

/*
* Computes the base10 log using baseN log.
* @note Requires above functions.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bclog10($a, $iter = 10)
{
return
bcdiv(bcln($a, $iter), bcln("10", $iter));
}


?>
up
-3
Anonymous
19 years ago
Well, if bcpow has limits, then this should work:
<?php
function bcpow_($num, $power) {
$awnser = "1";
while (
$power) {
$awnser = bcmul($awnser, $num, 100);
$power = bcsub($power, "1");
}
return
rtrim($awnser, '0.');
}
?>
Just that $power cannot have decimal digits in it.
To Top