···11---
22-title: Basic Answers
33-description: Concise answers to common basic questions about floating-point math, like "Why don't my numbers add up?"
22+title: Respuestas Básicas
33+description: Respuestas concisas a preguntas básicas sobre aritmética de coma flotante, como «¿Por qué mis números no se suman bien?»
44---
5566-### Why don't my numbers, like 0.1 + 0.2 add up to a nice round 0.3, and instead I get a weird result like 0.30000000000000004?
66+### ¿Por qué al sumar mis números, como 0.1 + 0.2, en vez de dar 0.3 dan un resultado extraño como 0.30000000000000004?
7788-Because internally, computers use a format ([binary](/formats/binary/) [floating-point](/formats/fp/)) that
99-cannot accurately represent a number like 0.1, 0.2 or 0.3 *at all*.
88+Porque internamente, los ordenadores usan un formato ([coma flotante](/formats/fp) [binario](/formats/binary))
99+que no puede representar de forma precisa números como 0.1, 0.2 o 0.3 *de ninguna manera*.
10101111-When the code is compiled or interpreted, your "0.1" is already
1212-rounded to the nearest number in that format, which results
1313-in a small [rounding error](/errors/rounding/) even before the calculation happens.
1111+Cuando el código es compilado o interpretado, tu "0.1" se redondea
1212+al número más cercano en ese formato, lo que resulta en un pequeño
1313+[error de redondeo](/errors/rounding/) incluso antes de que se haga
1414+la operación.
14151515-### Why do computers use such a stupid system?
1616+### ¿Por qué los ordenadores usan un sistema tan estúpido?
16171717-It's not stupid, just different. Decimal numbers cannot accurately
1818-represent a number like 1/3, so you have to round to something like
1919-0.33 - and you don't expect 0.33 + 0.33 + 0.33 to add up to 1, either - do you?
1818+No es estúpido, solo diferente. Los números decimales no pueden representar
1919+con precisión un número como ⅓, así que lo tienes que redondear a algo como
2020+0.33 - y no esperas que 0.33 + 0.33 + 0.33 sea igual a 1 tampoco, ¿no?
20212121-Computers use [binary numbers](/formats/binary/) because they're faster at dealing with
2222-those, and because for most calculations, a tiny error in the 17th
2323-decimal place doesn't matter at all since the numbers you work with
2424-aren't round (or that precise) anyway.
2222+Los ordenadores usan [números binarios](/formats/binary/) porque son más
2323+rápidos de manejar, y porque para la mayoría de operaciones un error en la
2424+17ª cifra decimal no importa en absoluto ya que los valores con los que
2525+trabajas no eran así de precisos de todas formas.
25262626-### What can I do to avoid this problem?
2727+### ¿Qué puedo hacer para evitar este problema?
27282828-That depends on what kind of calculations you're doing.
2929+Eso depende del tipo de cálculos que estés haciendo.
29303030-* If you really need your results to add up exactly, especially when you work with money: use a special [decimal datatype](/formats/exact/).
3131-* If you just don't want to see all those extra decimal places: simply format your result rounded to a fixed number of decimal places when displaying it.
3232-* If you have no decimal datatype available, an alternative is to work with [integers](/formats/integer/), e.g. do money calculations entirely in cents. But this is more work and has some drawbacks.
3131+* Si de verdad necesitas que tus resultados se sumen con exactitud, especialmente cuando trabajas con dinero: utiliza un [tipo de datos decimal](/formats/exact/) especial.
3232+* Si es solo que no quieres ver todos esos decimales extra: simplemente da formato a tu resultado redondeando a un número fijo de cifras decimales cuando lo presentes.
3333+* Si no tienes un tipo de datos decimal, una alternativa es trabajar con [enteros](/formats/integer/), e.g. hacer todos los cálculos con dinero en céntimos. Pero esto requiere más trabajo y tiene algunas desventajas.
33343434-### Why do other calculations like 0.1 + 0.4 work correctly?
3535+### ¿Por qué otros cálculos como 0.1 + 0.4 sí funcionan bien?
35363636-In that case, the result (0.5) *can* be represented exactly as a floating-point number,
3737-and it's possible for rounding errors in the input numbers to cancel each other out -
3838-But that can't necessarily be relied upon (e.g. when those two numbers
3939-were stored in differently sized floating point representations first, the rounding
4040-errors might not offset each other).
3737+En este caso, el resultado (0.5) *sí* puede ser representado de manera exacta como un
3838+número de coma flotante, y es posible que los errores de redondeo de los datos de partida
3939+se cancelen entre sí - aunque no se debería confiar excesivamente en esto (e.g. cuando
4040+esos dos números fueron almacenados en representaciones de coma flotante de diferente
4141+tamaño, los errores de redondeo pueden no cancelarse entre ellos).
41424242-In other cases like 0.1 + 0.3, the result actually isn't *really* 0.4, but close enough that 0.4
4343-is the shortest number that is closer to the result than to any other floating-point number. Many languages then display that number instead of converting the actual result back to the closest
4444-decimal fraction.
4343+En otros casos como 0.1 + 0.3, el resultado no es _realmente_ 0.4, pero está lo suficientemente
4444+cerca como para que 0.4 sea el número más corto que está más cerca del resultado que cualquier
4545+otro número de coma flotante. La mayoría de lenguajes presentan ese número en vez de convertir
4646+el resultado real a una fracción decimal.
4747+4848+Si quieres más información, puedes acudir a las [referencias](/references/).
+5-1
content/index.html
···1010¿Por qué mis números no se suman bien?
1111======================================
12121313-O sea que has escrito algún código absurdamente simple, como por ejemplo:
1313+O sea que has escrito algún código absurdamente simple, como por ejemplo<sup>1</sup>:
14141515 0.1 + 0.2
1616···2727* Si te interesa, dar explicaciones detalladas de por qué los números de coma flotante tienen que funcionar así y qué otros problemas pueden surgir
28282929Deberías ir a la sección de [Respuestas Básicas](/basic/) primero - ¡pero no termines ahí!
3030+3131+<sup>1</sup> <small>Las Academias de la Lengua [recomiendan el punto como separador para las cifras
3232+decimales](http://www.tex-tipografia.com/marca_decimal.html), convergiendo así con
3333+la notación anglosajona que es la que se utiliza en la mayoría de lenguajes de programación.</small>
+7-8
content/references.html
···11---
22-title: References
33-description: Documents with more in-depth information about floating-point math
22+title: Referencias
33+description: Documentos con más información detallada sobre aritmética de coma flotante
44---
5566-Documents that contain more in-depth information about the topics
77-covered on this wbesite:
66+Documentos que contienen más información detallada sobre los temas tratados en este sitio:
8799-* [Homepage of the IEEE 754 standard](http://grouper.ieee.org/groups/754/)
88+* [Página del estándar IEEE 754](http://grouper.ieee.org/groups/754/)
109* [What Every Computer Scientist Should Know About Floating-Point Arithmetic](http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html)
1111-* [Homepage of William Kahan (architect of the IEEE 754 standard, lots of interesting links)](http://www.cs.berkeley.edu/~wkahan/)
1010+* [Página de William Kahan](http://www.cs.berkeley.edu/~wkahan/) (arquitecto del estándar IEEE 754, muchos enlaces interesantes)
1211* [Decimal Arithmetic FAQ ](http://speleotrove.com/decimal/decifaq.html)
1313-* [Comparing floating-point numbers](http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm)
1414-* [Tool to convert numbers between bases, including fractions](http://www.easysurf.cc/cnver17.htm)
1212+* [Comparing floating point numbers, 2012 edition](http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/)
1313+* [Herramienta para convertir números entre bases, incluyendo fracciones](http://www.easysurf.cc/cnver17.htm)
+5-5
content/xkcd.html
···11---
22title: xkcd
33-description: How to mess with people who've learned to *expect* rounding errors in floating-point math.
33+description: Cómo fastidiar a la gente que ha aprendido a *esperar* errores de redondeo en aritmética de coma flotante.
44---
5566-or
77---
66+o
77+-
8899<%= @item[:description] %>
1010====================
11111212-
1212+
13131414-From [xkcd](http://www.xkcd.com/217/)
1414+De [xkcd](http://www.xkcd.com/217/)