Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Flash y Actionscript (http://www.forosdelweb.com/f16/)
-   -   Falla conversión Number a String y viceversa. (http://www.forosdelweb.com/f16/falla-conversion-number-string-viceversa-517658/)

snoby 07/09/2007 16:56

Falla conversión Number a String y viceversa.
 
Hola,

Cuando ejecuto el siguiente código en Flex cambia el valor del número al convertir de Number a String y viceversa.

código:
Código:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="setup();">
        <mx:Script>
                <![CDATA[
                        import mx.controls.Alert;
                        private var cadena:String="99999999999999999";
                        private function setup():void{
                                Alert.show("Cadena: "+cadena+"\nNúmero: "+ Number(cadena).toString());
                                trace("Cadena: "+cadena+"\nNúmero: "+ Number(cadena).toString());
                        }
                ]]>
        </mx:Script>
</mx:Application>

salida:
Cita:

Cadena: 99999999999999999
Número: 100000000000000000
Sucede tanto en Flex 2.0.1 como en Flex 3.
Alguien puede ayudarme a solventar esto.

Manu.

master_of_puppetz 05/01/2008 18:12

Re: Falla conversión Number a String y viceversa.
 
alguna vez vi ese problema, y no recuerdo bien, pero al parecer el problema era por que se "desbordaba" el número al convertirlo de cadena a número, algo así como si hubieras alcanzado el limite de la clase Number.

Samus_ 18/01/2008 00:42

Re: Falla conversión Number a String y viceversa.
 
Cita:

Iniciado por master_of_puppetz (Mensaje 2238149)
alguna vez vi ese problema, y no recuerdo bien, pero al parecer el problema era por que se "desbordaba" el número al convertirlo de cadena a número, algo así como si hubieras alcanzado el limite de la clase Number.

hmm no, me parece que el tema esta en la forma como la clase representa el dato, no olvidar que Number trabaja con punto flotante lo cual hace entendible ese redondeo hacia arriba (si fuese un problema de desbordamiento, ademas de tirar un error no debería asignar un valor aún más grande).
probablemente con el uint tengas más suerte, y ese sí no le pases valores mayores a uint.MAX_VALUE


La zona horaria es GMT -6. Ahora son las 00:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.