···8787Esto es conceptualmente muy evidente y fácil y tiene la ventaja de que escala
8888implícitamente el margen de error relativo con la magnitud de los valores.
8989Técnicamente es un poco más complejo, pero no mucho más de lo que puedas pensar,
9090-porque los números del IEEE 754 están diseñados para mantener su orden cuando
9090+porque los números de punto flotante del IEEE 754 están diseñados para mantener su orden cuando
9191sus secuencias de bits se interpretan como enteros.
92929393Sin embargo, este método requiere que el lenguaje de programación soporte conversión
+1-1
content/errors/rounding.html
···4141 se incrementa el último dígito. Este método es el que se enseña en el colegio normalmente
4242 y es el que usa la mayoría de la gente. Minimiza el error, pero también introduce un sesgo
4343 (lejos del cero).
4444-* **Redondeo la mitad al par** también conocido como el **redondeo del banquero** - si la
4444+* **Redondeo mitad al par** también conocido como el **redondeo del banquero** - si la
4545 fracción truncada es mayor que la mitad de la base, se incrementa el último dígito.
4646 Si es igual a la mitad de la base, se incrementa solamente si el resultado es par. Esto
4747 minimiza el error y el sesgo, y por eso se prefiere en contabilidad. Es el método por
+20-20
content/languages/csharp.html
···11---
22-title: Floating-point cheat sheet for C#
33-description: Tips for using floating-point and decimal numbers in C#
22+title: Cheat sheet de punto flotante para C#
33+description: Trucos para usar punto flotante y números decimales en C#
44---
5566-Floating-Point Types
77---------
88-C# has [IEEE 754](/formats/fp/) single and double precision types supported by keywords:
66+Tipos de punto flotante
77+-----------------------
981010- float f = 0.1f; // 32 bit float, note f suffix
1111- double d = 0.1d; // 64 bit float, suffix optional
99+C# tiene tipos de precisión sencilla y doble del [IEEE 754](/formats/fp/)
1010+soportados por palabras clave:
12111212+ float f = 0.1f; // punto flotante de 32 bits, nótese el sufijo f
1313+ double d = 0.1d; // punto flotante de 64 bits, sufijo opcional
13141414-Decimal Types
1515--------------
1616-C# has a 128 bit [limited-precision](/formats/exact/) decimal type denoted by the keyword
1717-<code>decimal</code>:
1515+Tipos decimales
1616+---------------
18171919- decimal myMoney = 300.1m; // note m suffix on the literal
1818+C# tiene un tipo decimal de 128 bit de [precisión limitada](/formats/exact/)
1919+denotado con la palabra clave `decimal`:
20202121+ decimal myMoney = 300.1m; // Nótese el sufijo m en el literal
21222222-How to Round
2323-------------
2424-The <code>Math.Round()</code> method works with the double and decimal types, and allows you to specify a [rounding mode](/errors/rounding/):
2323+Cómo redondear
2424+--------------
25252626- Math.Round(1.25m, 1, MidpointRounding.AwayFromZero); // returns 1.3
2626+El método `Math.Round()` funciona con los tipos `double` y `decimal`,
2727+y permite especificar el [método de redondeo](/errors/rounding/):
27282929+ Math.Round(1.25m, 1, MidpointRounding.AwayFromZero); // Devuelve 1.3
28303131+Recursos
3232+--------
29333030-Resources
3131----------
3234* [C# Reference](http://msdn.microsoft.com/en-us/library/618ayhy6%28v=VS.80%29.aspx)
3335 * [float type](http://msdn.microsoft.com/en-us/library/b1e65aza%28v=VS.80%29.aspx)
3436 * [double type](http://msdn.microsoft.com/en-us/library/678hzkk9%28v=VS.80%29.aspx)
3537 * [decimal type](http://msdn.microsoft.com/en-us/library/364x0z75%28v=VS.80%29.aspx)
3638 * [Math.Round()](http://msdn.microsoft.com/en-US/library/system.math.round%28v=VS.80%29.aspx)
3737-3838-
+41-33
content/languages/java.html
···11---
22-title: Floating-point cheat sheet for Java
33-description: Tips for using floating-point and decimal numbers in Java
22+title: Cheat sheet de punto flotante para Java
33+description: Trucos para usar punto flotante y números decimales en Java
44---
5566-Floating-Point Types
77---------
88-Java has [IEEE 754](/formats/fp/) single and double precision types supported by keywords:
66+Tipos de punto flotante
77+-----------------------
88+99+Java tiene tipos de precisión sencilla y doble del [IEEE 754](/formats/fp/) soportados
1010+por palabras clave:
1111+1212+ float f = 0.1f; // punto flotante de 32 bits, nótese el sufijo f
1313+ double d = 0.1d; // punto flotante de 64 bits, sufijo opcional
1414+1515+La palabra clave `strictfp` en las clases, interfaces y métodos fuerza también
1616+a que todos los resultados intermedios de cálculos en punto flotante sean
1717+valores IEEE 754, garantizando resultados idénticos en todas las plataformas.
1818+Sin esa palabra clave, las implementaciones pueden usar un rango extendido para
1919+el exponente, llevando a resultados más precisos y ejecuciones más rápidas
2020+en bastantes CPUs.
9211010- float f = 0.1f; // 32 bit float, note f suffix
1111- double d = 0.1d; // 64 bit float, suffix optional
1212-1313-The `strictfp` keyword on classes, interfaces and methods forces all intermediate results of floating-point calculations to be IEEE 754 values as well, guaranteeing identical results on all platforms. Without that keyword, implementations can use an extended exponent range where available, resulting in more precise results and faster execution on many common CPUs.
1414-1515-Decimal Types
1616--------------
1717-Java has an [arbitrary-precision](/formats/exact/) decimal type named <code>java.math.BigDecimal</code>, which
1818-also allows to choose the [rounding mode](/errors/rounding/).
2222+Tipos decimales
2323+---------------
2424+2525+Java tiene un tipo decimal de [precisión arbitraria](/formats/exact/) llamado
2626+`java.math.BigDecimal`, que también permite elegir el [método de redondeo](/errors/rounding/).
19272028 BigDecimal a = new BigDecimal("0.1");
2129 BigDecimal b = new BigDecimal("0.2");
2222- BigDecimal c = a.add(b); // returns a BigDecimal representing exactly 0.3
3030+ BigDecimal c = a.add(b); // Devuelve un BigDecimal que representa exactamente 0.3
23313232+Cómo redondear
3333+--------------
3434+3535+Para obtener una cadena:
24362525-How to Round
2626-------------
2727-To get a String:
3737+ String.format("%.2f", 1.2399) // Devuelve "1.24"
3838+ String.format("%.3f", 1.2399) // Devuelve "1.240"
3939+ String.format("%.2f", 1.2) // Devuelve "1.20"
4040+4141+Para imprimir por la salida estándar (o cualquier `PrintStream`):
4242+4343+ System.out.printf("%.2f", 1.2399) // Misma sintaxis que String.format()
28442929- String.format("%.2f", 1.2399) // returns "1.24"
3030- String.format("%.3f", 1.2399) // returns "1.240"
3131- String.format("%.2f", 1.2) // returns "1.20"
3232-3333-To print to standard output (or any <code>PrintStream</code>):
4545+Si no quieres ceros a la derecha:
34463535- System.out.printf("%.2f", 1.2399) // same syntax as String.format()
3636-3737-If you don't want trailing zeroes:
4747+ new DecimalFormat("0.00").format(1.2)// Devuelve "1.20"
4848+ new DecimalFormat("0.##").format(1.2)// Devuelve "1.2"
38493939- new DecimalFormat("0.00").format(1.2)// returns "1.20"
4040- new DecimalFormat("0.##").format(1.2)// returns "1.2"
4141-4242-If you need a specific [rounding mode](/errors/rounding/):
5050+Si necesitas un [método de redondeo](/errors/rounding/) específico:
43514444- new BigDecimal("1.25").setScale(1, RoundingMode.HALF_EVEN); // returns 1.2
5252+ new BigDecimal("1.25").setScale(1, RoundingMode.HALF_EVEN); // Devuelve 1.2
45535454+Recursos
5555+--------
46564747-Resources
4848----------
4957* [Java Language Specification](http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html)
5058 * [Floating-Point Types, Formats, and Values](http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.3)
5159* [Java Standard API](http://java.sun.com/javase/6/docs/api/)
+21-19
content/languages/javascript.html
···11---
22-title: Floating-point cheat sheet for JavaScript
33-description: Tips for using floating-point and decimal numbers in JavaScript
22+title: Cheat sheet de punto flotante para JavaScript
33+description: Trucos para usar punto flotante y números decimales en JavaScript
44---
5566-Floating-Point Types
77---------
88-JavaScript is dynamically typed and will often convert implicitly between strings and floating-point numbers (which are IEEE 64 bit values). To force a variable to floating-point, use the global <code>parseFloat()</code> function.
66+Tipos de punto flotante
77+-----------------------
88+99+JavaScript tiene tipado dinámico y a veces convertirá implícitamente entre cadenas
1010+y números de punto flotante (que son valores IEEE de 64 bits). Para forzar una variable
1111+a punto flotante, utiliza la función `parseFloat()`.
9121013 var num = parseFloat("3.5");
11141212-Decimal Types
1313--------------
1515+Tipos decimales
1616+---------------
14171515-The best decimal type for JavaScript seems to be a port of [Java's](/languages/java/) <code>BigDecimal</code> class, which also supports [rounding modes](/errors/rounding/):
1818+El mejor tipo decimal para JavaScript parece ser una migración de la clase de
1919+[Java](/languages/java/) `BigDecimal`, que también soporta [métodos de redondeo](/errors/rounding/):
16201721 var a = new BigDecimal("0.01");
1822 var b = new BigDecimal("0.02");
1923 var c = a.add(b); // 0.03
2024 var d = c.setScale(1, BigDecimal.prototype.ROUND_HALF_UP);
21252222-2323-How to Round
2424-------------
2626+Cómo redondear
2727+--------------
25282629 var num = 5.123456;
2727- num.toPrecision(1) //returns 5 as string
2828- num.toPrecision(2) //returns 5.1 as string
2929- num.toPrecision(4) //returns 5.123 as string
3030-3131-Using a specific rounding mode:
3030+ num.toPrecision(1) //Devuelve 5 como una cadena
3131+ num.toPrecision(2) //Devuelve 5.1 como una cadena
3232+ num.toPrecision(4) //Devuelve 5.123 como una cadena
3333+3434+Utilizando un método de redondeo específico:
32353336 new BigDecimal("1.25").setScale(1, BigDecimal.prototype.ROUND_HALF_UP);
34373838+Recursos
3939+--------
35403636-Resources
3737----------
3841* [BigDecimal for JavaScript](https://github.com/dtrebbien/BigDecimal.js)
3942* [Core JavaScript Reference](https://developer.mozilla.org/en/JavaScript/Reference)
4043 * [parseFloat()](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat)
4144 * [toPrecision()](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision)
4242-
+46-34
content/languages/perl.html
···11---
22-title: Floating-point cheat sheet for Perl
33-description: Tips for using floating-point and decimal numbers in Perl
22+title: Cheat sheet de punto flotante para Perl
33+description: Trucos para usar punto flotante y números decimales en Perl
44---
5566-Floating-Point Types
77---------
88-Perl supports platform-native floating-point as scalar values; in practice this usually means [IEEE 754](/formats/fp/) double precision.
66+Tipos de punto flotante
77+-----------------------
981010-Exact Types
99+Perl soporta números de punto flotante nativos de la plataforma como valores
1010+escalares; en la práctica esto significa precisión doble del [IEEE 754](/formats/fp/).
1111+1212+Tipos exactos
1113-------------
1212-Perl can also store decimal numbers as strings, but the builtin arithmetic operators will convert them to integer or floating-point values to perform the operation.
13141414-The <code>Math::BigFloat</code> extension provides an arbitrary-precision [decimal type](/formats/exact/):
1515+Perl también puede almacenar números decimales como cadenas, pero los operadores
1616+aritméticos integrados los convertirán a enteros o a valores de punto flotante
1717+para realizar la operación.
1818+1919+La extensión `Math::BigFloat` proporciona un [tipo decimal](/formats/exact/) de
2020+precisión arbitraria:
15211622 use Math::BigFloat ':constant'
1717- my $f = 0.1 + 0.2; # returns exactly 0.3
1818-1919-The <code>Number::Fraction</code> extension provides a fraction type that overloads the arithmetic operators with [symbolic](/formats/exact/) fraction arithmetic:
2323+ my $f = 0.1 + 0.2; # Devuelve exactamente 0.3
2424+2525+La extensión `Number::Fraction` proporciona un tipo de datos fraccionario que
2626+sobrecarga los operadores con aritmética [simbólica](/formats/exact/) para fracciones:
20272128 use Number::Fraction ':constants';
2222- my $f = '1/2' - '1/3'; # returns 1/6
2323-2424-The <code>Math::BigRat</code> extension provides similar functionality. Its advantage is compatibility with the
2525-<code>Math::BigInt</code> and <code>Math::BigFloat</code> extensions, but it does not seem to support fraction literals.
2929+ my $f = '1/2' - '1/3'; # Devuelve 1/6
26302727-How to Round
2828-------------
2929-To get a string:
3131+La extensión `Math::BigRat` proporciona funcionalidad similar. Su ventaja es
3232+compatibilidad con las extensiones `Math::BigInt` y `Math::BigFloat`, pero
3333+no parece soportar literales fraccionarios.
30343131- $result = sprintf("%.2f", 1.2345); # returns 1.23
3232-3333-To format output:
3535+Cómo redondear
3636+--------------
34373535- printf("%.2f", 1.2); # prints 1.20
3636-3737-Note that this implicitly uses [round-to-even](/errors/rounding/). The variable <code>$#</code> contains the default format for printing numbers, but its use is considered deprecated.
3838+Para obtener una cadena:
38393939-The <code>Math::Round</code> extension provides various functions for rounding floating-point values:
4040+ $result = sprintf("%.2f", 1.2345); # Devuelve 1.23
4141+4242+Para formatear la salida:
4343+4444+ printf("%.2f", 1.2); # Imprime 1.20
4545+4646+Ten en cuenta que esto utiliza implícitamente [mitad al par](/errors/rounding/).
4747+La variable `$#` contiene el formato por defecto para imprimir números, pero
4848+su uso se considera obsoleto.
4949+5050+La extensión `Math::Round` proporciona varias funciones para redondear valores
5151+de punto flotante:
40524153 use Math::Round qw(:all);
4242- $result = nearest(.1, 4.567) # prints 4.6
4343- $result = nearest(.01, 4.567) # prints 4.57
4444-4545-The <code>Math::BigFloat</code> extension also supports various [rounding modes](/errors/rounding/):
5454+ $result = nearest(.1, 4.567) # Imprime 4.6
5555+ $result = nearest(.01, 4.567) # Imprime 4.57
5656+5757+La extensión `Math::BigFloat` también soporta varios [métodos de redondeo](/errors/rounding/):
46584759 use Math::BigFloat;
4860 my $n = Math::BigFloat->new(123.455);
4949- my $f1 = $n->round('','-2','common'); # returns 123.46
5050- my $f2 = $n->round('','-2','zero'); # returns 123.45
6161+ my $f1 = $n->round('','-2','common'); # Devuelve 123.46
6262+ my $f2 = $n->round('','-2','zero'); # Devuelve 123.45
6363+6464+Recursos
6565+--------
51665252-Resources
5353----------
5467* [Semantics of numbers and numeric operations in Perl](http://perldoc.perl.org/perlnumber.html)
5568* [sprintf function](http://perldoc.perl.org/functions/sprintf.html)
5669* [Math::Round extension](http://search.cpan.org/dist/Math-Round/Round.pm)
5770* [Number::Fraction extension](http://search.cpan.org/~davecross/Number-Fraction-1.13/lib/Number/Fraction.pm)
5871* [Math::BigRat extension](http://search.cpan.org/~flora/Math-BigRat-0.26/lib/Math/BigRat.pm)
5972* [Math::BigFloat extension](http://search.cpan.org/~flora/Math-BigInt-1.95/lib/Math/BigFloat.pm)
6060-
+21-16
content/languages/php.html
···11---
22-title: Floating-point cheat sheet for PHP
33-description: Tips for using floating-point and decimal numbers in PHP
22+title: Cheat sheet de punto flotante para PHP
33+description: Trucos para usar punto flotante y números decimales en PHP
44---
5566-Floating-Point Types
77---------
88-PHP is dynamically typed and will often convert implicitly between strings and floating-point numbers (which are platform-dependant, but typically IEEE 64 bit values). To force a value to floating-point, evaluate it in a numerical context:
66+Tipos de punto flotante
77+-----------------------
88+99+PHP tiene tipado dinámico y a veces convertirá implícitamente entre cadenas y
1010+números de punto flotante (que son dependientes de la plataforma, pero normalmente
1111+valores IEEE de 64 bits). Para forzar un valor a punto flotante, evalúalo en un
1212+contexto numérico:
9131014 $foo = 0 + "10.5";
11151616+Tipos decimales
1717+---------------
12181313-Decimal Types
1414--------------
1515-The BC Math extension implements [arbitrary-precision](/formats/exact/) decimal math:
1919+La extensión BCMath (Binary Calculator) implementa aritmética de [precisión
2020+arbitraria](/formats/exact/) decimal:
16211722 $a = '0.1';
1823 $b = '0.2';
1919- echo bcadd($a, $b); // prints 0.3
2424+ echo bcadd($a, $b); // Imprime 0.3
20252121-How to Round
2222-------------
2323-Rounding can be done with the `number_format()` function:
2626+Cómo redondear
2727+--------------
2828+2929+Redondear se puede hacer con la función `number_format()`:
24302531 $number = 4.123;
2626- echo number_format($number, 2); // prints 4.12
3232+ echo number_format($number, 2); // Imprime 4.12
27333434+Recursos
3535+--------
28362929-Resources
3030----------
3137* [PHP manual](http://www.php.net/manual/en/index.php)
3238 * [Floating point types](http://www.php.net/manual/en/language.types.float.php)
3339 * [BC Math extension](http://de3.php.net/manual/en/ref.bc.php)
3440 * [number_format()](http://de3.php.net/manual/en/function.number-format.php)
3535-
+34-23
content/languages/python.html
···11---
22-title: Floating-point cheat sheet for Python
33-description: Tips for using floating-point and decimal numbers in Python
22+title: Cheat sheet de punto flotante para Python
33+description: Trucos para usar punto flotante y números decimales en Python
44---
5566-Floating-Point Types
77---------
88-Almost all platforms map Python floats to [IEEE 754](/formats/fp/)
99-double precision.
66+Tipos de punto flotante
77+-----------------------
88+99+Casi todas las plataformas asocian los `float` de Python a números de punto
1010+flotante de doble precisión del [IEEE 754](/formats/fp/).
10111112 f = 0.1
12131313-Decimal Types
1414--------------
1515-Python has an [arbitrary-precision](/formats/exact/) decimal type named <code>Decimal</code> in the <code>decimal</code> module, which also allows to choose the [rounding mode](/errors/rounding/).
1414+Tipos decimales
1515+---------------
1616+1717+Python tiene un tipo de [precision arbitraria](/formats/exact/) decimal llamado
1818+`Decimal` en el módulo `decimal`, que también permite elegir el [método de
1919+redondeo](/errors/rounding/).
16201721 a = Decimal('0.1')
1822 b = Decimal('0.2')
1919- c = a + b # returns a Decimal representing exactly 0.3
2323+ c = a + b # Devuelve un Decimal que representa exactamente 0.3
2424+2525+Cómo redondear
2626+--------------
2727+2828+Para obtener una cadena:
2929+3030+ "{:.2f}".format(1.2399) # Devuelve "1.24"
3131+ "{:.3f}".format(1.2399) # Devuelve "1.240"
3232+ "{:.2f}".format(1.2) # Devuelve "1.20"
20332121-How to Round
2222-------------
2323-To get a string:
3434+Para imprimir por la salida estándar (Python 2.x):
24352525- "%.2f" % 1.2399 # returns "1.24"
2626- "%.3f" % 1.2399 # returns "1.240"
2727- "%.2f" % 1.2 # returns "1.20"
2828-2929-To print to standard output:
3636+ print "{:.2f}".format(1.2399)
30373131- print "%.2f" % 1.2399 # just use print and string formatting
3232-3333-Specific [rounding modes](/errors/rounding/) and other parameters can be defined in a Context object:
3838+y en Python 3.x:
3939+4040+ print("{:.2f}".format(1.2399))
4141+4242+[Métodos de redondeo](/errors/rounding/) específicos y otros parámetros se pueden
4343+definir enun objeto `Context`:
34443545 getcontext().prec = 7
36463737-Resources
3838----------
4747+Recursos
4848+--------
4949+3950* [Floating Point Arithmetic: Issues and Limitations](http://docs.python.org/tutorial/floatingpoint.html)
4051* [The decimal module](http://docs.python.org/library/decimal.html)
4152 * [Context objects](http://docs.python.org/library/decimal.html#context-objects)
+28-21
content/languages/sql.html
···11---
22-title: Floating-point cheat sheet for SQL
33-description: Tips for using floating-point and decimal numbers in SQL
22+title: Cheat sheet de punto flotante para SQL
33+description: Trucos para usar punto flotante y números decimales en SQL
44---
5566-Floating-Point Types
77---------
88-The SQL standard defines three binary floating-point types:
66+Tipos de punto flotante
77+-----------------------
88+99+El estándar SQL define tres tipos de punto flotante binarios:
1010+1111+* `REAL` tiene precisión dependiente de la implementación (normalmente se asocia a un tipo a nivel de hardware como precisión sencilla o doble del IEEE 754).
1212+* `DOUBLE PRECISION` tiene precisión dependiente de la implementación que es mayor que la de `REAL` (normalmente se asocia al precisión doble del IEEE 754).
1313+* `FLOAT(N)` tiene al menos `N` dígitos binarios de precisión, con un máximo para `N` que depende de la implementación.
9141010-* `REAL` has implementation-dependant precision (usually maps to a hardware-supported type like IEEE 754 single or double precision)
1111-* `DOUBLE PRECISION` has implementation-dependant precision which is greater than `REAL` (usually maps to IEEE 754 double precision)
1212-* `FLOAT(N)` has at least `N` binary digits of precision, with an implementation-dependant maximum for `N`
1515+El rango del exponente para los tres tipos también depende de la implementación.
13161414-The exponent range for all three types is implementation-dependant as well.
1717+Tipos decimales
1818+---------------
15191616-Decimal Types
1717--------------
1818-The standard defines two fixed-point decimal types:
2020+El estándar define dos tipos decimales de punto fijo:
19212020-* `NUMERIC(M,N)` has exactly `M` total digits, `N` of them after the decimal point
2121-* `DECIMAL(M,N)` is the same as `NUMERIC(M,N)`, except that it is allowed to have more than `M` total digits
2222+* `NUMERIC(M,N)` tiene exactamente `M` dígitos en total, `N` de los cuales después del punto decimal.
2323+* `DECIMAL(M,N)` es lo mismo que `NUMERIC(M,N)`, excepto porque permite tener más de `M` dígitos totales.
22242323-The maximum values of `M` and `M` are implementation-dependant. Vendors often implement the two types identically.
2525+Los valores máximos de `M` y `N` dependen de la implementación. Los proveedores
2626+normalmente implementan los dos tipos de manera idéntica.
24272525-How to Round
2626-------------
2828+Cómo redondear
2929+--------------
27302828-The SQL standard defines no explicit rounding, but most vendors provide a `ROUND()` or `TRUNC()` function.
3131+El estándar SQL no define explícitamente el redondeo, pero la mayoría de los
3232+proveedores proporciona una función `ROUND()` o `TRUNC()`.
29333030-However, it usually makes little sense to round within the database, since its job is *storing* data, while rounding is an aspect of *displaying* data, and should therefore be done by the code in the presentation layer.
3434+Sin embargo, normalmente no tiene mucho sentido redondear dentro de la base de
3535+datos, puesto que su función es *almacenar* los datos, mientras que redondear
3636+es un aspecto de la *representación* de los datos, y debe por tanto hacerse
3737+en el código de la capa de presentación.
31383939+Recursos
4040+--------
32413333-Resources
3434----------
3542* [Official ISO SQL 2008 standard (non-free)](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38640)
3643* [SQL 92 draft (free)](http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt)
3744* [MySQL numeric types](http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html)