Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema con variable demansiado larga (creo)...

Iniciado por daniele_kiro, Marzo 29, 2016, 11:39:32 AM

Tema anterior - Siguiente tema
Hola gente!!Tengo una variable de tipo String llamada fecha y su valor es "1459243762".y al intentarla pasar el valor a la variable con un parseInt(fecha), me dice que el valor es 1.459244E+09.El problema creo que es en la forma de pasar el dato a int, porque creando una variable con el numero "1459243762" no me da problemas de que sea un numero largo...Alguien sabe de alguna solución o alguna otra forma de pasar valores de un string a un int que sea mejor?

intenta utilizar la "clase" int en lugar de string para pasar el valor : int entero = int.Parse (fecha);Ten cuidado, porque aunque con ese numero en concreto no deberias tener problemas ... relativamente por poquito no se sale de rango.

[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35517" data-ipsquote-contentcommentid="128811">intenta utilizar la "clase" int en lugar de string para pasar el valor : int entero = int.Parse (fecha);Ten cuidado, porque aunque con ese numero en concreto no deberias tener problemas ... relativamente por poquito no se sale de rango.[/quote]vale...un error mio, no es al pasarlo a int el error, como bien dices por poco se sale pero no me da error, es al intentar pasar ese numero a float...
private var formulario ="";
private var ver : WWW;
private var dato = "";

var inicio : boolean = false;
var tiempo2 : float;
var tiempo: int;

function FixedUpdate (){

if(inicio == true){
   tiempo2 += Time.deltaTime;
   }
}

function Start(){

formulario = paginaWebHora;
ver = WWW(formulario);
yield ver;
dato = ver.text;
print(dato);
    // EL VALOR ES
DE 10 DIGITOS POR EJEMPLO "1459243762"

tiempo = parseInt(dato);
tiempo2 = tiempo;
inicio = true;
}
y me daba el error ese...He cambiado en tiempo2 el valor float por double y ya funciona correctamente. Lo quería en forma de float para luego aplicarle un += Time.deltaTime, pero de tipo double también vale y no me da ese fallo.Sabes si hay una mejor solución o a si vale? 

Cita de: daniele_kiro date=1459248675" data-ipsquote="" data-cite="daniele_kiro" class="ipsQuoteSabes si hay una mejor solución o a si vale?
Si lo que quieres hacer es pasar la cadena a float, son 3/4 de lo mismo ... utiliza la funcion del tipo destino y no origen. Incluso si la variable tiempo de tipo entero solo la utilizas como puente entre la cadena de texto y la variable float, puedes ahorrarte ese punto y eliminarla :string dato = ver.text;float tiempo = Single.Parse (dato);si decides mantener la variable tiempo de tipo entero, puedes pasar de entero a float con un simple casteo ... aunque como te digo, es una tonteria si el entero solo lo utilizas en ese punto :string dato = ver.text;int tiempo = int.Parse (dato);float tiempo2 = (float) tiempo;En ambos casos el resultado final es el mismo, pero con un paso innecesario en el caso de que no utilices la variable tiempo (de tipo entero) en otro punto del script. Suerte

[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35517" data-ipsquote-contentcommentid="128813 date=1459250007]Si lo que quieres hacer es pasar la cadena a float, son 3/4 de lo mismo ... utiliza la funcion del tipo destino y no origen. Incluso si la variable tiempo de tipo entero solo la utilizas como puente entre la cadena de texto y la variable float, puedes ahorrarte ese punto y eliminarla :string dato = ver.text;float tiempo = Single.Parse (dato);si decides mantener la variable tiempo de tipo entero, puedes pasar de entero a float con un simple casteo ... aunque como te digo, es una tonteria si el entero solo lo utilizas en ese punto :string dato = ver.text;int tiempo = int.Parse (dato);float tiempo2 = (float) tiempo;En ambos casos el resultado final es el mismo, pero con un paso innecesario en el caso de que no utilices la variable tiempo (de tipo entero) en otro punto del script. Suerte[/quote]Muchas gracias!!

Etiquetas: