hola, tengo un problema tengo la siguiente ecuacion
Porcentaje = (PesoNormal / 100) * (Durabilidad / 5)
PesoActual = PesoNormal - Porcentaje
[/quote]
pero cuando quiero aplicarlo a codigo
void Start(){
porcentaje = HightWeight / 100 * Durability / 5;
Weight = HightWeight - porcentaje;
}
la variable porcantaje sale 0 siempre, porque pasa esto? alguien me dise que esta mal
Grasias
La única razón que se me ocurre es que estes usando valores enteros.
Es decir, si HightWeight o Durability, son enteros, al dividirlos, si estos valores no son lo suficientemente grandes darán valores cercanos a cero, que se redondearán a 0 y logicamente 0 * cualquier numero será 0.
Prueba a forzar que sean decimales.
porcentaje = (((float)(HightWeight))/100) * (((float)(Durability))/5);
Luego, si porcentaje es otro entero, también "redondeará" el valor, es decir, "2.743" lo pasará a "2", directamente.
@Harsel efectivamente, HightWeight y Durability son numeros enteros aqui dejo un poco mas amplio, tengo un problema con el codigo que pusiste arriba, porque no se puede convertir de float a int
, bueno eso me dise el unity en el error que me sale.
int Durability;
int porcentaje;
int HightWeight;
int Weight;
void Start(){
Durability = Random.Range(0,100);
porcentaje = HightWeight / 100 * Durability / 5;
Weight = HightWeight - porcentaje;
}
Grasias por responder tan rapido.
Cita de: KevinLastra date=1494961006@Harsel efectivamente, HightWeight y Durability son numeros enteros aqui dejo un poco mas amplio, tengo un problema con el codigo que pusiste arriba, porque no se puede convertir de float a int
, bueno eso me dise el unity en el error que me sale.
int Durability;
int porcentaje;
int HightWeight;
int Weight;
void Start(){
Durability = Random.Range(0,100);
porcentaje = HightWeight / 100 * Durability / 5;
Weight = HightWeight - porcentaje;
}
Grasias por responder tan rapido.
Sí, logicamente.
Simplemente castealo, o mejor, usa el convert de c#, por ejemplo de esta manera:
porcentaje = System.Convert.ToInt32((((float)HightWeight) / 100) * (((float)Durability) / 5));
Muchas grasias @Harsel :)