<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comentarios en: Comparando reales sin terminos naturales</title>
	<atom:link href="http://bicosyes.com/comparando-reales-sin-terminos-naturales/feed/" rel="self" type="application/rss+xml" />
	<link>http://bicosyes.com/comparando-reales-sin-terminos-naturales/</link>
	<description></description>
	<pubDate>Sat, 30 Aug 2008 03:16:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>Por: blaxter</title>
		<link>http://bicosyes.com/comparando-reales-sin-terminos-naturales/#comment-43350</link>
		<dc:creator>blaxter</dc:creator>
		<pubDate>Thu, 17 Apr 2008 20:45:49 +0000</pubDate>
		<guid isPermaLink="false">http://bicosyes.com/comparando-reales-sin-terminos-naturales/#comment-43350</guid>
		<description>&lt;code&gt;
&gt;&gt; 69.99 * 100.0 - 6999.0
=&gt; -9.09494701772928e-13
&lt;/code&gt;

Si se hace esto mismo (usando reales), en cualquier otro lenguaje (c, java, python, perl, etc...) se obtendrá lo mismo. Es fallo de redondeo por usar coma flotante. Por eso siempre se recomienda que para representar valores numéricos de precios o divisas usar &lt;strong&gt;siempre&lt;/strong&gt; su representación en enteros. Es decir para guardar 69,99€ en una base de datos, se &lt;strong&gt;debe&lt;/strong&gt; de guardar el valor entero '6999'.

Luego en cada lenguaje siempre existen librerías para tratar con números con decimales de forma digna las cuales representan los números como cadenas de texto. 
&lt;code&gt;
&gt;&gt; value = BigDecimal('69.99')
&gt;&gt; value * 100 == 6999.0
=&gt; true
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p><code><br />
>> 69.99 * 100.0 - 6999.0<br />
=> -9.09494701772928e-13<br />
</code></p>
<p>Si se hace esto mismo (usando reales), en cualquier otro lenguaje (c, java, python, perl, etc&#8230;) se obtendrá lo mismo. Es fallo de redondeo por usar coma flotante. Por eso siempre se recomienda que para representar valores numéricos de precios o divisas usar <strong>siempre</strong> su representación en enteros. Es decir para guardar 69,99€ en una base de datos, se <strong>debe</strong> de guardar el valor entero &#8216;6999&#8242;.</p>
<p>Luego en cada lenguaje siempre existen librerías para tratar con números con decimales de forma digna las cuales representan los números como cadenas de texto.<br />
<code><br />
>> value = BigDecimal('69.99')<br />
>> value * 100 == 6999.0<br />
=> true<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: chuidiang</title>
		<link>http://bicosyes.com/comparando-reales-sin-terminos-naturales/#comment-43349</link>
		<dc:creator>chuidiang</dc:creator>
		<pubDate>Thu, 17 Apr 2008 20:14:14 +0000</pubDate>
		<guid isPermaLink="false">http://bicosyes.com/comparando-reales-sin-terminos-naturales/#comment-43349</guid>
		<description>Todo normal, ya sabemos que los decimales (aunque sean punto cero) y los ordenadores no se llevan muy bien....

Se bueno.</description>
		<content:encoded><![CDATA[<p>Todo normal, ya sabemos que los decimales (aunque sean punto cero) y los ordenadores no se llevan muy bien&#8230;.</p>
<p>Se bueno.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
