Skip to content

Commit 9022d8b

Browse files
committed
initial translation in bcmath/number
1 parent 170e43e commit 9022d8b

File tree

5 files changed

+847
-0
lines changed

5 files changed

+847
-0
lines changed
+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: c7e83fbbbcde9f54affc09424d032c38492a3ff4 Maintainer: leonardolara Status: ready -->
2+
<refentry xml:id="bcmath-number.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
3+
<refnamediv>
4+
<refname>BcMath\Number::__construct</refname>
5+
<refpurpose>Cria um objeto BcMath\Number</refpurpose>
6+
</refnamediv>
7+
8+
<refsect1 role="description">
9+
&reftitle.description;
10+
<constructorsynopsis role="BcMath\\Number">
11+
<modifier>public</modifier> <methodname>BcMath\Number::__construct</methodname>
12+
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>num</parameter></methodparam>
13+
</constructorsynopsis>
14+
<simpara>
15+
Cria um objeto <classname>BcMath\Number</classname>a partir de um valor <type>int</type> ou <type>string</type>.
16+
</simpara>
17+
</refsect1>
18+
19+
<refsect1 role="parameters">
20+
&reftitle.parameters;
21+
<variablelist>
22+
<varlistentry>
23+
<term><parameter>num</parameter></term>
24+
<listitem>
25+
<simpara>
26+
Um valor <type>int</type> ou <type>string</type>.
27+
Se <parameter>num</parameter> for um <type>int</type>,
28+
<property>BcMath\Number::scale</property> será sempre definida como <literal>0</literal>.
29+
Se <parameter>num</parameter> for uma <type>string</type>, precisa ser um número válido
30+
e <property>BcMath\Number::scale</property> será definida automaticamente interpretando a string.
31+
</simpara>
32+
</listitem>
33+
</varlistentry>
34+
</variablelist>
35+
</refsect1>
36+
37+
<refsect1 role="errors">
38+
&reftitle.errors;
39+
<simpara>
40+
Este método lança uma exceção <exceptionname>ValueError</exceptionname> se <parameter>num</parameter>
41+
for uma <type>string</type> e não for uma string numérica BCMath bem formada.
42+
</simpara>
43+
</refsect1>
44+
45+
<refsect1 role="examples">
46+
&reftitle.examples;
47+
<example>
48+
<title>Exemplo de <methodname>BcMath\Number::__construct</methodname></title>
49+
<programlisting role="php">
50+
<![CDATA[
51+
<?php
52+
$num1 = new BcMath\Number(100);
53+
$num2 = new BcMath\Number('-200');
54+
$num3 = new BcMath\Number('300.00');
55+
56+
var_dump($num1, $num2, $num3);
57+
?>
58+
]]>
59+
</programlisting>
60+
&example.outputs;
61+
<screen>
62+
<![CDATA[
63+
object(BcMath\Number)#1 (2) {
64+
["value"]=>
65+
string(3) "100"
66+
["scale"]=>
67+
int(0)
68+
}
69+
object(BcMath\Number)#2 (2) {
70+
["value"]=>
71+
string(4) "-200"
72+
["scale"]=>
73+
int(0)
74+
}
75+
object(BcMath\Number)#3 (2) {
76+
["value"]=>
77+
string(6) "300.00"
78+
["scale"]=>
79+
int(2)
80+
}
81+
]]>
82+
</screen>
83+
</example>
84+
</refsect1>
85+
86+
<refsect1 role="seealso">
87+
&reftitle.seealso;
88+
<simplelist>
89+
<member><methodname>BcMath\Number::__serialize</methodname></member>
90+
<member><methodname>BcMath\Number::__unserialize</methodname></member>
91+
</simplelist>
92+
</refsect1>
93+
94+
</refentry>
95+
<!-- Keep this comment at the end of the file
96+
Local variables:
97+
mode: sgml
98+
sgml-omittag:t
99+
sgml-shorttag:t
100+
sgml-minimize-attributes:nil
101+
sgml-always-quote-attributes:t
102+
sgml-indent-step:1
103+
sgml-indent-data:t
104+
indent-tabs-mode:nil
105+
sgml-parent-document:nil
106+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
107+
sgml-exposed-tags:nil
108+
sgml-local-catalogs:nil
109+
sgml-local-ecat-files:nil
110+
End:
111+
vim600: syn=xml fen fdm=syntax fdl=2 si
112+
vim: et tw=78 syn=sgml
113+
vi: ts=1 sw=1
114+
-->

reference/bc/bcmath/number/div.xml

+243
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: c7e83fbbbcde9f54affc09424d032c38492a3ff4 Maintainer: leonardolara Status: ready -->
2+
<refentry xml:id="bcmath-number.div" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
3+
<refnamediv>
4+
<refname>BcMath\Number::div</refname>
5+
<refpurpose>Divide por um número de precisão arbitrária</refpurpose>
6+
</refnamediv>
7+
8+
<refsect1 role="description">
9+
&reftitle.description;
10+
<methodsynopsis role="BcMath\\Number">
11+
<modifier>public</modifier> <type>BcMath\Number</type><methodname>BcMath\Number::div</methodname>
12+
<methodparam><type class="union"><type>BcMath\Number</type><type>string</type><type>int</type></type><parameter>num</parameter></methodparam>
13+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>scale</parameter><initializer>&null;</initializer></methodparam>
14+
</methodsynopsis>
15+
<simpara>
16+
Divide <varname>$this</varname> por <parameter>num</parameter>.
17+
</simpara>
18+
</refsect1>
19+
20+
<refsect1 role="parameters">
21+
&reftitle.parameters;
22+
<variablelist>
23+
<varlistentry>
24+
<term><parameter>num</parameter></term>
25+
<listitem>
26+
<simpara>
27+
O divisor.
28+
</simpara>
29+
</listitem>
30+
</varlistentry>
31+
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('bcmath-number.add')/db:refsect1[@role='parameters']/descendant::db:varlistentry[2])" />
32+
</variablelist>
33+
</refsect1>
34+
35+
<refsect1 role="returnvalues">
36+
&reftitle.returnvalues;
37+
<simpara>
38+
Retorna o resultado da divisão como um novo objeto <classname>BcMath\Number</classname>.
39+
</simpara>
40+
<simpara>
41+
Quando a propriedade <property>BcMath\Number::scale</property> do objeto resultante é definida automaticamente,
42+
a <property>BcMath\Number::scale</property> do dividendo é usada. Entretanto, em casos como
43+
uma divisão indivisível, a <property>BcMath\Number::scale</property> do resultado é expandida.
44+
Expansão é feita apenas quando necessário, até um limite de <literal>+10</literal>.
45+
</simpara>
46+
<simpara>
47+
Ou seja, se a <property>BcMath\Number::scale</property> do dividendo for <literal>5</literal>,
48+
a <property>BcMath\Number::scale</property> do resultado estará entre <literal>5</literal> e
49+
<literal>15</literal>.
50+
</simpara>
51+
<simpara>
52+
Mesmo em cálculos indivisíveis, a <property>BcMath\Number::scale</property> não será sempre
53+
<literal>+10</literal>.
54+
Considera-se que um <literal>0</literal> no final do resultado não precisa de expansão, então a
55+
<property>BcMath\Number::scale</property> é reduzida por essa quantidade.
56+
A <property>BcMath\Number::scale</property> nunca será menor que a
57+
<property>BcMath\Number::scale</property> anterior à expansão.
58+
Consulte também o <link linkend="bcmath-number.div.example.expansion-scale">exemplo de código</link>.
59+
</simpara>
60+
</refsect1>
61+
62+
<refsect1 role="errors">
63+
&reftitle.errors;
64+
<para>
65+
Este método lança uma exceção <exceptionname>ValueError</exceptionname> nos seguintes casos:
66+
<simplelist>
67+
<member><parameter>num</parameter> é uma<type>string</type> e não é uma string numérica BCMath bem formada</member>
68+
<member><parameter>scale</parameter> está fora do intervalo válido</member>
69+
<member><property>BcMath\Number::scale</property> do objeto resultante está fora do intervalo válido</member>
70+
</simplelist>
71+
</para>
72+
<simpara>
73+
Este método lança uma exceção <exceptionname>DivisionByZeroError</exceptionname> se
74+
<parameter>num</parameter> for <literal>0</literal>.
75+
</simpara>
76+
</refsect1>
77+
78+
<refsect1 role="examples">
79+
&reftitle.examples;
80+
<example>
81+
<title>Exemplo de <methodname>BcMath\Number::div</methodname> quando <parameter>scale</parameter> não for especificado</title>
82+
<programlisting role="php">
83+
<![CDATA[
84+
<?php
85+
$number = new BcMath\Number('0.002');
86+
87+
$ret1 = $number->div(new BcMath\Number('2.000'));
88+
$ret2 = $number->div('-3');
89+
$ret3 = $number->div(32);
90+
91+
var_dump($number, $ret1, $ret2, $ret3);
92+
?>
93+
]]>
94+
</programlisting>
95+
&example.outputs;
96+
<screen>
97+
<![CDATA[
98+
object(BcMath\Number)#1 (2) {
99+
["value"]=>
100+
string(5) "0.002"
101+
["scale"]=>
102+
int(3)
103+
}
104+
object(BcMath\Number)#3 (2) {
105+
["value"]=>
106+
string(5) "0.001"
107+
["scale"]=>
108+
int(3)
109+
}
110+
object(BcMath\Number)#2 (2) {
111+
["value"]=>
112+
string(16) "-0.0006666666666"
113+
["scale"]=>
114+
int(13)
115+
}
116+
object(BcMath\Number)#4 (2) {
117+
["value"]=>
118+
string(9) "0.0000625"
119+
["scale"]=>
120+
int(7)
121+
}
122+
]]>
123+
</screen>
124+
</example>
125+
126+
<example>
127+
<title>Exemplo de <methodname>BcMath\Number::div</methodname> especificando <parameter>scale</parameter> explicitamente</title>
128+
<programlisting role="php">
129+
<![CDATA[
130+
<?php
131+
$number = new BcMath\Number('0.002');
132+
133+
$ret1 = $number->div(new BcMath\Number('2.000'), 15);
134+
$ret2 = $number->div('-3', 5);
135+
$ret3 = $number->div(32, 2);
136+
137+
var_dump($number, $ret1, $ret2, $ret3);
138+
?>
139+
]]>
140+
</programlisting>
141+
&example.outputs;
142+
<screen>
143+
<![CDATA[
144+
object(BcMath\Number)#1 (2) {
145+
["value"]=>
146+
string(5) "0.002"
147+
["scale"]=>
148+
int(3)
149+
}
150+
object(BcMath\Number)#3 (2) {
151+
["value"]=>
152+
string(17) "0.001000000000000"
153+
["scale"]=>
154+
int(15)
155+
}
156+
object(BcMath\Number)#2 (2) {
157+
["value"]=>
158+
string(8) "-0.00066"
159+
["scale"]=>
160+
int(5)
161+
}
162+
object(BcMath\Number)#4 (2) {
163+
["value"]=>
164+
string(4) "0.00"
165+
["scale"]=>
166+
int(2)
167+
}
168+
]]>
169+
</screen>
170+
</example>
171+
172+
<example xml:id="bcmath-number.div.example.expansion-scale">
173+
<title>Exemplo de <methodname>BcMath\Number::div</methodname> expandindo <property>BcMath\Number::scale</property> do objeto resultante</title>
174+
<programlisting role="php">
175+
<![CDATA[
176+
<?php
177+
var_dump(
178+
new BcMath\Number('0.001')->div('10001'),
179+
new BcMath\Number('0.001')->div('10001', 13),
180+
new BcMath\Number('0.001')->div('100000000000001'),
181+
);
182+
?>
183+
]]>
184+
</programlisting>
185+
&example.outputs;
186+
<screen>
187+
<![CDATA[
188+
object(BcMath\Number)#2 (2) {
189+
["value"]=>
190+
string(13) "0.00000009999"
191+
["scale"]=>
192+
int(11)
193+
}
194+
object(BcMath\Number)#3 (2) {
195+
["value"]=>
196+
string(15) "0.0000000999900"
197+
["scale"]=>
198+
int(13)
199+
}
200+
object(BcMath\Number)#4 (2) {
201+
["value"]=>
202+
string(5) "0.000"
203+
["scale"]=>
204+
int(3)
205+
}
206+
]]>
207+
</screen>
208+
</example>
209+
</refsect1>
210+
211+
<refsect1 role="seealso">
212+
&reftitle.seealso;
213+
<simplelist>
214+
<member><function>bcdiv</function></member>
215+
<member><methodname>BcMath\Number::divmod</methodname></member>
216+
<member><methodname>BcMath\Number::mod</methodname></member>
217+
<member><methodname>BcMath\Number::sqrt</methodname></member>
218+
<member><methodname>BcMath\Number::pow</methodname></member>
219+
<member><methodname>BcMath\Number::mul</methodname></member>
220+
</simplelist>
221+
</refsect1>
222+
223+
</refentry>
224+
<!-- Keep this comment at the end of the file
225+
Local variables:
226+
mode: sgml
227+
sgml-omittag:t
228+
sgml-shorttag:t
229+
sgml-minimize-attributes:nil
230+
sgml-always-quote-attributes:t
231+
sgml-indent-step:1
232+
sgml-indent-data:t
233+
indent-tabs-mode:nil
234+
sgml-parent-document:nil
235+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
236+
sgml-exposed-tags:nil
237+
sgml-local-catalogs:nil
238+
sgml-local-ecat-files:nil
239+
End:
240+
vim600: syn=xml fen fdm=syntax fdl=2 si
241+
vim: et tw=78 syn=sgml
242+
vi: ts=1 sw=1
243+
-->

0 commit comments

Comments
 (0)