-
Notifications
You must be signed in to change notification settings - Fork 788
/
Copy pathbcpow.xml
178 lines (168 loc) · 5.04 KB
/
bcpow.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.bcpow" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>bcpow</refname>
<refpurpose>Raise an arbitrary precision number to another</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>bcpow</methodname>
<methodparam><type>string</type><parameter>num</parameter></methodparam>
<methodparam><type>string</type><parameter>exponent</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>scale</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Raise <parameter>num</parameter> to the power
<parameter>exponent</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>num</parameter></term>
<listitem>
<para>
The base, as a string.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>exponent</parameter></term>
<listitem>
<para>
The exponent, as a string. Must be a value with no fractional part.
The valid range of the exponent is platform specific, but is at least
<literal>-2147483648</literal> to <literal>2147483647</literal>.
</para>
</listitem>
</varlistentry>
<xi:include xpointer="function.bcadd..parameters.scale" />
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the result as a string.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
This function throws a <exceptionname>ValueError</exceptionname> in the following cases:
<simplelist>
<member><parameter>num</parameter> or <parameter>exponent</parameter> is not a well-formed BCMath numeric string</member>
<member><parameter>exponent</parameter> has a fractional part</member>
<member><parameter>exponent</parameter> or <parameter>scale</parameter> is outside the valid range</member>
</simplelist>
</para>
<simpara>
This function throws a <exceptionname>DivisionByZeroError</exceptionname> exception if <parameter>num</parameter>
is <literal>0</literal> and <parameter>exponent</parameter> is a negative value.
</simpara>
</refsect1>
<refsect1 role="changelog"><!-- {{{ -->
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.4.0</entry>
<entry>
Negative powers of <literal>0</literal> previously returned <literal>0</literal>, but now throw a <exceptionname>DivisionByZeroError</exceptionname>
exception.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
When <parameter>exponent</parameter> has a fractional part, it now throws a <exceptionname>ValueError</exceptionname>
instead of truncating.
</entry>
</row>
<row>
<entry>7.3.0</entry>
<entry>
<function>bcpow</function> now returns numbers with the requested scale.
Formerly, the returned numbers may have omitted trailing decimal zeroes.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1><!-- }}} -->
<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>bcpow</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
echo bcpow('4.2', '3', 2); // 74.08
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Before PHP 7.3.0 <function>bcpow</function> may return a result with fewer digits after the
decimal point than the <parameter>scale</parameter> parameter would
indicate. This only occurs when the result doesn't require all of the
precision allowed by the <parameter>scale</parameter>. For example:
<example>
<title><function>bcpow</function> scale example</title>
<programlisting role="php">
<![CDATA[
<?php
echo bcpow('5', '2', 2); // prints "25", not "25.00"
?>
]]>
</programlisting>
</example>
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>bcpowmod</function></member>
<member><function>bcsqrt</function></member>
<member><methodname>BcMath\Number::pow</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->