[ Foro de C# ]

Ayuda C#

08-Mar-2020 04:24
dario delgado
3 Respuestas

Tengo una pregunta: como mostrar numeros decimales sin redondear. Tengo este codigo:
using System;

class MainClass {
 public static void Main (string[] args) {
   double temp = 20,wind_speed = 7;
   double wind_chill= 0;

   wind_chill = 35.74 + 0.6215*temp + (0.4275*temp - 35.75) * Math.Pow(wind_speed,0.16);

   Console.WriteLine(wind_chill);
 }
}

La salida deberia ser: 11.034900625509998, pero yo obtengo esto 11.03490062551.
Como le hago para que lo imprima como en el ejemplo.
Salu2.


08-Mar-2020 11:24
Nacho Cabanes (+83)

Cada dato tiene una cierta cantidad de cifras de precisión máxima. Por lo general, podrás reducir la precisión (mostrar menos decimales), pero no ampliarla, a no ser que cambies a otro tipo de datos que permita una mayor cantidad de cifras (si el lenguaje lo permite).

En C#, en tipo "double" garantiza unas 15 cifras de precisión, así que lo que obtienes es lo esperable.


08-Mar-2020 14:33
dario delgado

Se puede usar el tipo de dato decimal? si es asi, como seria la formula si Math.Pow() es tipo double.


08-Mar-2020 17:49
Nacho Cabanes (+83)

Efectivamente, el tipo "decimal" te permite el doble de cifras (aunque con un rango mucho menor), pero Math.Pow devuelve un double y limitará tu precisión final.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)