elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [DUDA] Problema al transformar Cº a Fº en un programa.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Problema al transformar Cº a Fº en un programa.  (Leído 1,510 veces)
fjlopezc17

Desconectado Desconectado

Mensajes: 5


Ver Perfil
[DUDA] Problema al transformar Cº a Fº en un programa.
« en: 5 Agosto 2016, 13:23 pm »

Hola a todos ::), primero me gustaría decir que soy nuevo en el foro y principiante de Java así que no me maten. :-\

Estaba creando un programa que me transformase los grados Celsius/Centígrados a Fahrenheit y viceversa. Al pasar de Cº a Fº la formula sería:

Fº = Cº * (9/5) + 32

Pero me dí cuenta que por ejemplo 35ºC son 95ºF (visto en Google) mientras que en mi programa da 67ºF.  :o

Esto quiere decir que en mi programa solo se sumaron los 32 de la formula pero no multiplicó los 9/5 por los Celsius. No entiendo por qué  :huh: así que les dejo el código:
Código:
package Experimentillos;
import java.util.Scanner;

public class FahrenheitCelsius {

static double Cº_Fº(double num){
num = num*(9/5)+32;
   return num;
}

static double Fº_Cº(double num){
num = (num-32)*(5/9);
   return num;
}

public static void main(String[] args){
Scanner S = new Scanner(System.in);

int op;
double celsius, fahren;

do{
System.out.println("Elija una opción: ");
System.out.println("1. Cº => Fº");
System.out.println("2. Fº => Cº");
System.out.println("3. Salir");
op = S.nextInt();
}while(op > 3 || op < 1);

switch(op){
case 1:
System.out.println("¿Cuántos Cº?");
celsius = S.nextInt();
fahren = Cº_Fº(celsius);
System.out.println(celsius+" Cº son "+fahren+" Fº.");
break;
case 2:
System.out.println("¿Cuántos Fº?");
fahren = S.nextInt();
celsius = Fº_Cº(fahren);
System.out.println(fahren+" Fº son "+celsius+" Cº.");
break;
case 3:
}
}
}

Gracias de antemano. Saludos!!!


« Última modificación: 5 Agosto 2016, 13:58 pm por fjlopezc17 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: [DUDA] Problema al transformar Cº a Fº en un programa.
« Respuesta #1 en: 5 Agosto 2016, 16:35 pm »

(9/5) es 1, ya que son enteros, y se redodnea hacia abajo.
Debieras poner (9.0/5.0), para que sean tratados como coma flotante.
Otra opción, es quitar los paténtesis. num*9/5 + 32.


En línea

+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: [DUDA] Problema al transformar Cº a Fº en un programa.
« Respuesta #2 en: 5 Agosto 2016, 16:40 pm »

hay funciones para el redondeo para arriba y abajo


si no me equivoco para redondear hacia abajo es cell()


saludos
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: [DUDA] Problema al transformar Cº a Fº en un programa.
« Respuesta #3 en: 5 Agosto 2016, 16:52 pm »

hay funciones para el redondeo para arriba y abajo


si no me equivoco para redondear hacia abajo es cell()


saludos
Así es, pero no cambia nada tras una división deenteros.

Por cierto, en vez de 9/5, te puede ser más cómodo poner 1.8.
En línea

hectornunezrivas

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: [DUDA] Problema al transformar Cº a Fº en un programa.
« Respuesta #4 en: 7 Agosto 2016, 20:28 pm »

Hola.
Yo lo h realizado de la siguiente forma.
Código:
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      System.out.println("Seleccione una conversion");
      System.out.println("1. ºC  a  ºF");
      System.out.println("2. ºF  a  ºC");
      int n=sc.nextInt();
      if(n==1){
          System.out.println("Ingresa grados centigrados");
          int c=sc.nextInt();
          double f=(c*9/5)+(32);
          System.out.println(c+"ºC equivale a "+f+"ºF");
      }else{
          System.out.println("Ingresa grados fahrenheit");
          int f=sc.nextInt();
          double c=(f-32)*5/9;
          System.out.println(f+"ºF equivale  a "+c+"ºC");
      }
    }
}
Espero y te sirva saludos.
En línea

fjlopezc17

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: [DUDA] Problema al transformar Cº a Fº en un programa.
« Respuesta #5 en: 11 Agosto 2016, 18:18 pm »

Buenas tardes. Finalmente he solucionado el problema al poner el decimal .0 como bien decía ivancea96. Una cosa más aprendida, muchas gracias por sus respuestas.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
transformar swf a dvd
Multimedia
shafala 7 2,613 Último mensaje 3 Diciembre 2004, 10:51 am
por Songoku
Problema al transformar dvd's
Multimedia
arkayd 1 731 Último mensaje 2 Enero 2005, 23:28 pm
por Songoku
[Ayuda] Es Posible Transformar un Programa 64 a 32 bytes ¿?
Dudas Generales
Wildseba 5 1,459 Último mensaje 19 Febrero 2013, 14:53 pm
por Wildseba
[DUDA]Transformar Sintaxis Oracle SQL a MySQL
Bases de Datos
blackyer94 2 1,434 Último mensaje 16 Abril 2015, 21:09 pm
por fran800m
Duda: Programa devolviendo valor a otro programa
Programación C/C++
erest0r 6 1,914 Último mensaje 3 Julio 2015, 01:38 am
por erest0r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines