Lo que todo programador debería saber sobre aritmética de punto flotante
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Traducidas cheat sheets de los lenguajes

+191 -129
+1 -1
errors/comparison/index.html
··· 102 102 <p>Esto es conceptualmente muy evidente y fácil y tiene la ventaja de que escala 103 103 implícitamente el margen de error relativo con la magnitud de los valores. 104 104 Técnicamente es un poco más complejo, pero no mucho más de lo que puedas pensar, 105 - porque los números del IEEE 754 están diseñados para mantener su orden cuando 105 + porque los números de punto flotante del IEEE 754 están diseñados para mantener su orden cuando 106 106 sus secuencias de bits se interpretan como enteros.</p> 107 107 108 108 <p>Sin embargo, este método requiere que el lenguaje de programación soporte conversión
+1 -1
errors/rounding/index.html
··· 55 55 se incrementa el último dígito. Este método es el que se enseña en el colegio normalmente 56 56 y es el que usa la mayoría de la gente. Minimiza el error, pero también introduce un sesgo 57 57 (lejos del cero).</li> 58 - <li><strong>Redondeo la mitad al par</strong> también conocido como el <strong>redondeo del banquero</strong> - si la 58 + <li><strong>Redondeo mitad al par</strong> también conocido como el <strong>redondeo del banquero</strong> - si la 59 59 fracción truncada es mayor que la mitad de la base, se incrementa el último dígito. 60 60 Si es igual a la mitad de la base, se incrementa solamente si el resultado es par. Esto 61 61 minimiza el error y el sesgo, y por eso se prefiere en contabilidad. Es el método por
+21 -15
languages/csharp/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for C#</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para C#</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in C#"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en C#"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for C#</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>C# has <a href="/formats/fp/">IEEE 754</a> single and double precision types supported by keywords:</p> 17 + <h1>Cheat sheet de punto flotante para C#</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 20 19 21 - <pre><code> float f = 0.1f; // 32 bit float, note f suffix 22 - double d = 0.1d; // 64 bit float, suffix optional 20 + <p>C# tiene tipos de precisión sencilla y doble del <a href="/formats/fp/">IEEE 754</a> 21 + soportados por palabras clave:</p> 22 + 23 + <pre><code> float f = 0.1f; // punto flotante de 32 bits, nótese el sufijo f 24 + double d = 0.1d; // punto flotante de 64 bits, sufijo opcional 23 25 </code></pre> 24 26 25 - <h2 id="decimal-types">Decimal Types</h2> 26 - <p>C# has a 128 bit <a href="/formats/exact/">limited-precision</a> decimal type denoted by the keyword 27 - <code>decimal</code>:</p> 27 + <h2 id="tipos-decimales">Tipos decimales</h2> 28 + 29 + <p>C# tiene un tipo decimal de 128 bit de <a href="/formats/exact/">precisión limitada</a> 30 + denotado con la palabra clave <code>decimal</code>:</p> 28 31 29 - <pre><code> decimal myMoney = 300.1m; // note m suffix on the literal 32 + <pre><code> decimal myMoney = 300.1m; // Nótese el sufijo m en el literal 30 33 </code></pre> 31 34 32 - <h2 id="how-to-round">How to Round</h2> 33 - <p>The <code>Math.Round()</code> method works with the double and decimal types, and allows you to specify a <a href="/errors/rounding/">rounding mode</a>:</p> 35 + <h2 id="cmo-redondear">Cómo redondear</h2> 34 36 35 - <pre><code> Math.Round(1.25m, 1, MidpointRounding.AwayFromZero); // returns 1.3 37 + <p>El método <code>Math.Round()</code> funciona con los tipos <code>double</code> y <code>decimal</code>, 38 + y permite especificar el <a href="/errors/rounding/">método de redondeo</a>:</p> 39 + 40 + <pre><code> Math.Round(1.25m, 1, MidpointRounding.AwayFromZero); // Devuelve 1.3 36 41 </code></pre> 37 42 38 - <h2 id="resources">Resources</h2> 43 + <h2 id="recursos">Recursos</h2> 44 + 39 45 <ul> 40 46 <li><a href="http://msdn.microsoft.com/en-us/library/618ayhy6%28v=VS.80%29.aspx">C# Reference</a> 41 47 <ul>
+35 -25
languages/java/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for Java</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para Java</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in Java"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en Java"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for Java</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>Java has <a href="/formats/fp/">IEEE 754</a> single and double precision types supported by keywords:</p> 17 + <h1>Cheat sheet de punto flotante para Java</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>Java tiene tipos de precisión sencilla y doble del <a href="/formats/fp/">IEEE 754</a> soportados 21 + por palabras clave:</p> 20 22 21 - <pre><code> float f = 0.1f; // 32 bit float, note f suffix 22 - double d = 0.1d; // 64 bit float, suffix optional 23 + <pre><code> float f = 0.1f; // punto flotante de 32 bits, nótese el sufijo f 24 + double d = 0.1d; // punto flotante de 64 bits, sufijo opcional 23 25 </code></pre> 24 26 25 - <p>The <code>strictfp</code> 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.</p> 27 + <p>La palabra clave <code>strictfp</code> en las clases, interfaces y métodos fuerza también 28 + a que todos los resultados intermedios de cálculos en punto flotante sean 29 + valores IEEE 754, garantizando resultados idénticos en todas las plataformas. 30 + Sin esa palabra clave, las implementaciones pueden usar un rango extendido para 31 + el exponente, llevando a resultados más precisos y ejecuciones más rápidas 32 + en bastantes CPUs.</p> 33 + 34 + <h2 id="tipos-decimales">Tipos decimales</h2> 26 35 27 - <h2 id="decimal-types">Decimal Types</h2> 28 - <p>Java has an <a href="/formats/exact/">arbitrary-precision</a> decimal type named <code>java.math.BigDecimal</code>, which 29 - also allows to choose the <a href="/errors/rounding/">rounding mode</a>.</p> 36 + <p>Java tiene un tipo decimal de <a href="/formats/exact/">precisión arbitraria</a> llamado 37 + <code>java.math.BigDecimal</code>, que también permite elegir el <a href="/errors/rounding/">método de redondeo</a>.</p> 30 38 31 39 <pre><code> BigDecimal a = new BigDecimal("0.1"); 32 40 BigDecimal b = new BigDecimal("0.2"); 33 - BigDecimal c = a.add(b); // returns a BigDecimal representing exactly 0.3 41 + BigDecimal c = a.add(b); // Devuelve un BigDecimal que representa exactamente 0.3 34 42 </code></pre> 35 43 36 - <h2 id="how-to-round">How to Round</h2> 37 - <p>To get a String:</p> 44 + <h2 id="cmo-redondear">Cómo redondear</h2> 38 45 39 - <pre><code> String.format("%.2f", 1.2399) // returns "1.24" 40 - String.format("%.3f", 1.2399) // returns "1.240" 41 - String.format("%.2f", 1.2) // returns "1.20" 46 + <p>Para obtener una cadena:</p> 47 + 48 + <pre><code> String.format("%.2f", 1.2399) // Devuelve "1.24" 49 + String.format("%.3f", 1.2399) // Devuelve "1.240" 50 + String.format("%.2f", 1.2) // Devuelve "1.20" 42 51 </code></pre> 43 52 44 - <p>To print to standard output (or any <code>PrintStream</code>):</p> 53 + <p>Para imprimir por la salida estándar (o cualquier <code>PrintStream</code>):</p> 45 54 46 - <pre><code> System.out.printf("%.2f", 1.2399) // same syntax as String.format() 55 + <pre><code> System.out.printf("%.2f", 1.2399) // Misma sintaxis que String.format() 47 56 </code></pre> 48 57 49 - <p>If you don’t want trailing zeroes:</p> 58 + <p>Si no quieres ceros a la derecha:</p> 50 59 51 - <pre><code> new DecimalFormat("0.00").format(1.2)// returns "1.20" 52 - new DecimalFormat("0.##").format(1.2)// returns "1.2" 60 + <pre><code> new DecimalFormat("0.00").format(1.2)// Devuelve "1.20" 61 + new DecimalFormat("0.##").format(1.2)// Devuelve "1.2" 53 62 </code></pre> 54 63 55 - <p>If you need a specific <a href="/errors/rounding/">rounding mode</a>:</p> 64 + <p>Si necesitas un <a href="/errors/rounding/">método de redondeo</a> específico:</p> 56 65 57 - <pre><code> new BigDecimal("1.25").setScale(1, RoundingMode.HALF_EVEN); // returns 1.2 66 + <pre><code> new BigDecimal("1.25").setScale(1, RoundingMode.HALF_EVEN); // Devuelve 1.2 58 67 </code></pre> 59 68 60 - <h2 id="resources">Resources</h2> 69 + <h2 id="recursos">Recursos</h2> 70 + 61 71 <ul> 62 72 <li><a href="http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html">Java Language Specification</a><br /> 63 73 <ul>
+18 -13
languages/javascript/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for JavaScript</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para JavaScript</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in JavaScript"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en JavaScript"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for JavaScript</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>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.</p> 17 + <h1>Cheat sheet de punto flotante para JavaScript</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>JavaScript tiene tipado dinámico y a veces convertirá implícitamente entre cadenas 21 + y números de punto flotante (que son valores IEEE de 64 bits). Para forzar una variable 22 + a punto flotante, utiliza la función <code>parseFloat()</code>.</p> 20 23 21 24 <pre><code> var num = parseFloat("3.5"); 22 25 </code></pre> 23 26 24 - <h2 id="decimal-types">Decimal Types</h2> 27 + <h2 id="tipos-decimales">Tipos decimales</h2> 25 28 26 - <p>The best decimal type for JavaScript seems to be a port of <a href="/languages/java/">Java’s</a> <code>BigDecimal</code> class, which also supports <a href="/errors/rounding/">rounding modes</a>:</p> 29 + <p>El mejor tipo decimal para JavaScript parece ser una migración de la clase de 30 + <a href="/languages/java/">Java</a> <code>BigDecimal</code>, que también soporta <a href="/errors/rounding/">métodos de redondeo</a>:</p> 27 31 28 32 <pre><code> var a = new BigDecimal("0.01"); 29 33 var b = new BigDecimal("0.02"); ··· 31 35 var d = c.setScale(1, BigDecimal.prototype.ROUND_HALF_UP); 32 36 </code></pre> 33 37 34 - <h2 id="how-to-round">How to Round</h2> 38 + <h2 id="cmo-redondear">Cómo redondear</h2> 35 39 36 40 <pre><code> var num = 5.123456; 37 - num.toPrecision(1) //returns 5 as string 38 - num.toPrecision(2) //returns 5.1 as string 39 - num.toPrecision(4) //returns 5.123 as string 41 + num.toPrecision(1) //Devuelve 5 como una cadena 42 + num.toPrecision(2) //Devuelve 5.1 como una cadena 43 + num.toPrecision(4) //Devuelve 5.123 como una cadena 40 44 </code></pre> 41 45 42 - <p>Using a specific rounding mode:</p> 46 + <p>Utilizando un método de redondeo específico:</p> 43 47 44 48 <pre><code> new BigDecimal("1.25").setScale(1, BigDecimal.prototype.ROUND_HALF_UP); 45 49 </code></pre> 46 50 47 - <h2 id="resources">Resources</h2> 51 + <h2 id="recursos">Recursos</h2> 52 + 48 53 <ul> 49 54 <li><a href="https://github.com/dtrebbien/BigDecimal.js">BigDecimal for JavaScript</a></li> 50 55 <li><a href="https://developer.mozilla.org/en/JavaScript/Reference">Core JavaScript Reference</a><br />
+39 -26
languages/perl/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for Perl</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para Perl</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in Perl"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en Perl"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for Perl</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>Perl supports platform-native floating-point as scalar values; in practice this usually means <a href="/formats/fp/">IEEE 754</a> double precision.</p> 17 + <h1>Cheat sheet de punto flotante para Perl</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>Perl soporta números de punto flotante nativos de la plataforma como valores 21 + escalares; en la práctica esto significa precisión doble del <a href="/formats/fp/">IEEE 754</a>.</p> 20 22 21 - <h2 id="exact-types">Exact Types</h2> 22 - <p>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.</p> 23 + <h2 id="tipos-exactos">Tipos exactos</h2> 24 + 25 + <p>Perl también puede almacenar números decimales como cadenas, pero los operadores 26 + aritméticos integrados los convertirán a enteros o a valores de punto flotante 27 + para realizar la operación.</p> 23 28 24 - <p>The <code>Math::BigFloat</code> extension provides an arbitrary-precision <a href="/formats/exact/">decimal type</a>:</p> 29 + <p>La extensión <code>Math::BigFloat</code> proporciona un <a href="/formats/exact/">tipo decimal</a> de 30 + precisión arbitraria:</p> 25 31 26 32 <pre><code> use Math::BigFloat ':constant' 27 - my $f = 0.1 + 0.2; # returns exactly 0.3 33 + my $f = 0.1 + 0.2; # Devuelve exactamente 0.3 28 34 </code></pre> 29 35 30 - <p>The <code>Number::Fraction</code> extension provides a fraction type that overloads the arithmetic operators with <a href="/formats/exact/">symbolic</a> fraction arithmetic:</p> 36 + <p>La extensión <code>Number::Fraction</code> proporciona un tipo de datos fraccionario que 37 + sobrecarga los operadores con aritmética <a href="/formats/exact/">simbólica</a> para fracciones:</p> 31 38 32 39 <pre><code> use Number::Fraction ':constants'; 33 - my $f = '1/2' - '1/3'; # returns 1/6 40 + my $f = '1/2' - '1/3'; # Devuelve 1/6 34 41 </code></pre> 35 42 36 - <p>The <code>Math::BigRat</code> extension provides similar functionality. Its advantage is compatibility with the 37 - <code>Math::BigInt</code> and <code>Math::BigFloat</code> extensions, but it does not seem to support fraction literals.</p> 43 + <p>La extensión <code>Math::BigRat</code> proporciona funcionalidad similar. Su ventaja es 44 + compatibilidad con las extensiones <code>Math::BigInt</code> y <code>Math::BigFloat</code>, pero 45 + no parece soportar literales fraccionarios.</p> 46 + 47 + <h2 id="cmo-redondear">Cómo redondear</h2> 38 48 39 - <h2 id="how-to-round">How to Round</h2> 40 - <p>To get a string:</p> 49 + <p>Para obtener una cadena:</p> 41 50 42 - <pre><code> $result = sprintf("%.2f", 1.2345); # returns 1.23 51 + <pre><code> $result = sprintf("%.2f", 1.2345); # Devuelve 1.23 43 52 </code></pre> 44 53 45 - <p>To format output:</p> 54 + <p>Para formatear la salida:</p> 46 55 47 - <pre><code> printf("%.2f", 1.2); # prints 1.20 56 + <pre><code> printf("%.2f", 1.2); # Imprime 1.20 48 57 </code></pre> 49 58 50 - <p>Note that this implicitly uses <a href="/errors/rounding/">round-to-even</a>. The variable <code>$#</code> contains the default format for printing numbers, but its use is considered deprecated.</p> 59 + <p>Ten en cuenta que esto utiliza implícitamente <a href="/errors/rounding/">mitad al par</a>. 60 + La variable <code>$#</code> contiene el formato por defecto para imprimir números, pero 61 + su uso se considera obsoleto.</p> 51 62 52 - <p>The <code>Math::Round</code> extension provides various functions for rounding floating-point values:</p> 63 + <p>La extensión <code>Math::Round</code> proporciona varias funciones para redondear valores 64 + de punto flotante:</p> 53 65 54 66 <pre><code> use Math::Round qw(:all); 55 - $result = nearest(.1, 4.567) # prints 4.6 56 - $result = nearest(.01, 4.567) # prints 4.57 67 + $result = nearest(.1, 4.567) # Imprime 4.6 68 + $result = nearest(.01, 4.567) # Imprime 4.57 57 69 </code></pre> 58 70 59 - <p>The <code>Math::BigFloat</code> extension also supports various <a href="/errors/rounding/">rounding modes</a>:</p> 71 + <p>La extensión <code>Math::BigFloat</code> también soporta varios <a href="/errors/rounding/">métodos de redondeo</a>:</p> 60 72 61 73 <pre><code> use Math::BigFloat; 62 74 my $n = Math::BigFloat-&gt;new(123.455); 63 - my $f1 = $n-&gt;round('','-2','common'); # returns 123.46 64 - my $f2 = $n-&gt;round('','-2','zero'); # returns 123.45 75 + my $f1 = $n-&gt;round('','-2','common'); # Devuelve 123.46 76 + my $f2 = $n-&gt;round('','-2','zero'); # Devuelve 123.45 65 77 </code></pre> 66 78 67 - <h2 id="resources">Resources</h2> 79 + <h2 id="recursos">Recursos</h2> 80 + 68 81 <ul> 69 82 <li><a href="http://perldoc.perl.org/perlnumber.html">Semantics of numbers and numeric operations in Perl</a></li> 70 83 <li><a href="http://perldoc.perl.org/functions/sprintf.html">sprintf function</a></li>
+20 -12
languages/php/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for PHP</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para PHP</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in PHP"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en PHP"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for PHP</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>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:</p> 17 + <h1>Cheat sheet de punto flotante para PHP</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>PHP tiene tipado dinámico y a veces convertirá implícitamente entre cadenas y 21 + números de punto flotante (que son dependientes de la plataforma, pero normalmente 22 + valores IEEE de 64 bits). Para forzar un valor a punto flotante, evalúalo en un 23 + contexto numérico: </p> 20 24 21 25 <pre><code> $foo = 0 + "10.5"; 22 26 </code></pre> 23 27 24 - <h2 id="decimal-types">Decimal Types</h2> 25 - <p>The BC Math extension implements <a href="/formats/exact/">arbitrary-precision</a> decimal math:</p> 28 + <h2 id="tipos-decimales">Tipos decimales</h2> 29 + 30 + <p>La extensión BCMath (Binary Calculator) implementa aritmética de <a href="/formats/exact/">precisión 31 + arbitraria</a> decimal:</p> 26 32 27 33 <pre><code> $a = '0.1'; 28 34 $b = '0.2'; 29 - echo bcadd($a, $b); // prints 0.3 35 + echo bcadd($a, $b); // Imprime 0.3 30 36 </code></pre> 31 37 32 - <h2 id="how-to-round">How to Round</h2> 33 - <p>Rounding can be done with the <code>number_format()</code> function:</p> 38 + <h2 id="cmo-redondear">Cómo redondear</h2> 39 + 40 + <p>Redondear se puede hacer con la función <code>number_format()</code>:</p> 34 41 35 42 <pre><code> $number = 4.123; 36 - echo number_format($number, 2); // prints 4.12 43 + echo number_format($number, 2); // Imprime 4.12 37 44 </code></pre> 38 45 39 - <h2 id="resources">Resources</h2> 46 + <h2 id="recursos">Recursos</h2> 47 + 40 48 <ul> 41 49 <li><a href="http://www.php.net/manual/en/index.php">PHP manual</a> 42 50 <ul>
+30 -18
languages/python/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for Python</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para Python</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in Python"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en Python"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for Python</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>Almost all platforms map Python floats to <a href="/formats/fp/">IEEE 754</a> 20 - double precision.</p> 17 + <h1>Cheat sheet de punto flotante para Python</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>Casi todas las plataformas asocian los <code>float</code> de Python a números de punto 21 + flotante de doble precisión del <a href="/formats/fp/">IEEE 754</a>.</p> 21 22 22 23 <pre><code> f = 0.1 23 24 </code></pre> 24 25 25 - <h2 id="decimal-types">Decimal Types</h2> 26 - <p>Python has an <a href="/formats/exact/">arbitrary-precision</a> decimal type named <code>Decimal</code> in the <code>decimal</code> module, which also allows to choose the <a href="/errors/rounding/">rounding mode</a>.</p> 26 + <h2 id="tipos-decimales">Tipos decimales</h2> 27 + 28 + <p>Python tiene un tipo de <a href="/formats/exact/">precision arbitraria</a> decimal llamado 29 + <code>Decimal</code> en el módulo <code>decimal</code>, que también permite elegir el <a href="/errors/rounding/">método de 30 + redondeo</a>.</p> 27 31 28 32 <pre><code> a = Decimal('0.1') 29 33 b = Decimal('0.2') 30 - c = a + b # returns a Decimal representing exactly 0.3 34 + c = a + b # Devuelve un Decimal que representa exactamente 0.3 31 35 </code></pre> 32 36 33 - <h2 id="how-to-round">How to Round</h2> 34 - <p>To get a string:</p> 37 + <h2 id="cmo-redondear">Cómo redondear</h2> 35 38 36 - <pre><code> "%.2f" % 1.2399 # returns "1.24" 37 - "%.3f" % 1.2399 # returns "1.240" 38 - "%.2f" % 1.2 # returns "1.20" 39 + <p>Para obtener una cadena:</p> 40 + 41 + <pre><code> "{:.2f}".format(1.2399) # Devuelve "1.24" 42 + "{:.3f}".format(1.2399) # Devuelve "1.240" 43 + "{:.2f}".format(1.2) # Devuelve "1.20" 39 44 </code></pre> 40 45 41 - <p>To print to standard output:</p> 46 + <p>Para imprimir por la salida estándar (Python 2.x):</p> 42 47 43 - <pre><code> print "%.2f" % 1.2399 # just use print and string formatting 48 + <pre><code> print "{:.2f}".format(1.2399) 44 49 </code></pre> 45 50 46 - <p>Specific <a href="/errors/rounding/">rounding modes</a> and other parameters can be defined in a Context object:</p> 51 + <p>y en Python 3.x:</p> 52 + 53 + <pre><code> print("{:.2f}".format(1.2399)) 54 + </code></pre> 55 + 56 + <p><a href="/errors/rounding/">Métodos de redondeo</a> específicos y otros parámetros se pueden 57 + definir enun objeto <code>Context</code>:</p> 47 58 48 59 <pre><code> getcontext().prec = 7 49 60 </code></pre> 50 61 51 - <h2 id="resources">Resources</h2> 62 + <h2 id="recursos">Recursos</h2> 63 + 52 64 <ul> 53 65 <li><a href="http://docs.python.org/tutorial/floatingpoint.html">Floating Point Arithmetic: Issues and Limitations</a></li> 54 66 <li><a href="http://docs.python.org/library/decimal.html">The decimal module</a>
+26 -18
languages/sql/index.html
··· 2 2 <html lang="es"> 3 3 <head> 4 4 <meta charset="utf-8"> 5 - <title>La Guía del Punto Flotante - Floating-point cheat sheet for SQL</title> 5 + <title>La Guía del Punto Flotante - Cheat sheet de punto flotante para SQL</title> 6 6 7 7 <meta name="generator" content="nanoc 3.1.2"> 8 8 9 - <meta name="Description" content="Tips for using floating-point and decimal numbers in SQL"> 9 + <meta name="Description" content="Trucos para usar punto flotante y números decimales en SQL"> 10 10 11 11 <link rel="stylesheet" type="text/css" href="/style.css" media="screen"> 12 12 <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ··· 14 14 </head> 15 15 <body> 16 16 <div id="main"> 17 - <h1>Floating-point cheat sheet for SQL</h1> 18 - <h2 id="floating-point-types">Floating-Point Types</h2> 19 - <p>The SQL standard defines three binary floating-point types:</p> 17 + <h1>Cheat sheet de punto flotante para SQL</h1> 18 + <h2 id="tipos-de-punto-flotante">Tipos de punto flotante</h2> 19 + 20 + <p>El estándar SQL define tres tipos de punto flotante binarios:</p> 20 21 21 22 <ul> 22 - <li><code>REAL</code> has implementation-dependant precision (usually maps to a hardware-supported type like IEEE 754 single or double precision)</li> 23 - <li><code>DOUBLE PRECISION</code> has implementation-dependant precision which is greater than <code>REAL</code> (usually maps to IEEE 754 double precision)</li> 24 - <li><code>FLOAT(N)</code> has at least <code>N</code> binary digits of precision, with an implementation-dependant maximum for <code>N</code></li> 23 + <li><code>REAL</code> 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).</li> 24 + <li><code>DOUBLE PRECISION</code> tiene precisión dependiente de la implementación que es mayor que la de <code>REAL</code> (normalmente se asocia al precisión doble del IEEE 754).</li> 25 + <li><code>FLOAT(N)</code> tiene al menos <code>N</code> dígitos binarios de precisión, con un máximo para <code>N</code> que depende de la implementación.</li> 25 26 </ul> 26 27 27 - <p>The exponent range for all three types is implementation-dependant as well.</p> 28 + <p>El rango del exponente para los tres tipos también depende de la implementación.</p> 28 29 29 - <h2 id="decimal-types">Decimal Types</h2> 30 - <p>The standard defines two fixed-point decimal types:</p> 30 + <h2 id="tipos-decimales">Tipos decimales</h2> 31 + 32 + <p>El estándar define dos tipos decimales de punto fijo:</p> 31 33 32 34 <ul> 33 - <li><code>NUMERIC(M,N)</code> has exactly <code>M</code> total digits, <code>N</code> of them after the decimal point</li> 34 - <li><code>DECIMAL(M,N)</code> is the same as <code>NUMERIC(M,N)</code>, except that it is allowed to have more than <code>M</code> total digits</li> 35 + <li><code>NUMERIC(M,N)</code> tiene exactamente <code>M</code> dígitos en total, <code>N</code> de los cuales después del punto decimal.</li> 36 + <li><code>DECIMAL(M,N)</code> es lo mismo que <code>NUMERIC(M,N)</code>, excepto porque permite tener más de <code>M</code> dígitos totales.</li> 35 37 </ul> 36 38 37 - <p>The maximum values of <code>M</code> and <code>M</code> are implementation-dependant. Vendors often implement the two types identically.</p> 39 + <p>Los valores máximos de <code>M</code> y <code>N</code> dependen de la implementación. Los proveedores 40 + normalmente implementan los dos tipos de manera idéntica.</p> 38 41 39 - <h2 id="how-to-round">How to Round</h2> 42 + <h2 id="cmo-redondear">Cómo redondear</h2> 40 43 41 - <p>The SQL standard defines no explicit rounding, but most vendors provide a <code>ROUND()</code> or <code>TRUNC()</code> function.</p> 44 + <p>El estándar SQL no define explícitamente el redondeo, pero la mayoría de los 45 + proveedores proporciona una función <code>ROUND()</code> o <code>TRUNC()</code>.</p> 46 + 47 + <p>Sin embargo, normalmente no tiene mucho sentido redondear dentro de la base de 48 + datos, puesto que su función es <em>almacenar</em> los datos, mientras que redondear 49 + es un aspecto de la <em>representación</em> de los datos, y debe por tanto hacerse 50 + en el código de la capa de presentación.</p> 42 51 43 - <p>However, it usually makes little sense to round within the database, since its job is <em>storing</em> data, while rounding is an aspect of <em>displaying</em> data, and should therefore be done by the code in the presentation layer.</p> 52 + <h2 id="recursos">Recursos</h2> 44 53 45 - <h2 id="resources">Resources</h2> 46 54 <ul> 47 55 <li><a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38640">Official ISO SQL 2008 standard (non-free)</a> </li> 48 56 <li><a href="http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt">SQL 92 draft (free)</a></li>