• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc w poprawieniu działa programu.

Object Storage Arubacloud
0 głosów
126 wizyt
pytanie zadane 16 grudnia 2018 w C# przez Gw0zdziu Nowicjusz (230 p.)

Witam

Potrzebuje pomocy w poprawianiu działa programu.

Deklaruje zmnienną metr i centymetr typu int i zmnienna "x" typu int

w case 1 wczytuje z klawiatury liczbe "2" i mnożę ją przez 100.

W metodzie Console.WriteLine wychodzi liczba 5000. Dowiedziałem się sam, że traktuje to jako kod znaku ASCII.

Nie wiem jak zrobić aby uznawał liczbę "2" jako liczbę i ją poprawnie mnożyło.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dlugosci
{
    public class Dlugosc
    {
        public static void Obliczanie()
        {
            int centymentr;
            int metr;
            
            
           int wynik;
           while (true)
           {
                
                Console.WriteLine("Proszę wybrać sposób konwersji");
                Console.WriteLine("1. Metry >> Centymetry");
                Console.WriteLine("2. Centymetry >> Metr");
                Console.WriteLine("3. Kilometry >> Metry");
                Console.WriteLine("4. Metry >> Kilometry");
                Console.WriteLine("5. Kilometry >> Centymetry");
                Console.WriteLine("6. Centymetry >> Kilometry");
                
                
                ConsoleKeyInfo przycisk = Console.ReadKey();
                
               
                
                switch (przycisk.Key)
                {
                    case ConsoleKey.D1:
                        Console.Clear();
                        Console.WriteLine("Proszę podać wartość metrów");
                        
                        centymentr = 100;
                        metr = Console.Read();
                        wynik  =centymentr*metr ;
                        Console.WriteLine("Wartość wynosi " + wynik);
                        break;

                    case ConsoleKey.D2:

                        break;

                    case ConsoleKey.D3:

                        break;

                    case ConsoleKey.D4:

                        break;

                    case ConsoleKey.D5:

                        break;

                    case ConsoleKey.D6:

                        break;
                    
                        case ConsoleKey.D7:
                        Environment.Exit(0);
                        break;
                    default:
                        break;



                }
           }
        }
        
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 16 grudnia 2018 przez izonik Stary wyjadacz (12,560 p.)
wybrane 16 grudnia 2018 przez Gw0zdziu
 
Najlepsza

Czyli potrzebujesz przewertować Stringa na Inta. Aby to zrobić użyj po prostu tego

metr = System.Convert.ToInt32(Console.ReadLine());

lub tego

metr = Int32.Parse(Console.ReadLine());
komentarz 16 grudnia 2018 przez Gw0zdziu Nowicjusz (230 p.)
mam to wpisać w case przy przed switch?
komentarz 16 grudnia 2018 przez izonik Stary wyjadacz (12,560 p.)

Powinieneś zastąpić linię

 metr = Console.Read();
komentarz 16 grudnia 2018 przez Gw0zdziu Nowicjusz (230 p.)
Mam pytanie jeżeli chce użyć w następnym case i kolejnych zmiennej metr i przypisać jej wartość 0.01 to program się nie pozwala poprawnie.

Wyskakuje błąd, że nie można niejawnie przekonwertować z double na int, bo istniej konwersja jawna.
komentarz 16 grudnia 2018 przez izonik Stary wyjadacz (12,560 p.)

Najprawdopodobniej dzieje się tak dlatego że zmienna metr została zadeklarowana jako `int`.  Powinieneś zmienić typ tej zmiennej przy jej deklaracji z `int metr;` na `double metr;`, jednak kiedy dokonasz tej zmiany to reszta kodu też powinna ulec zmianie.

 

Podobne pytania

0 głosów
0 odpowiedzi 51 wizyt
pytanie zadane 25 listopada 2023 w C# przez mateusz45 Gaduła (3,240 p.)
0 głosów
0 odpowiedzi 396 wizyt
pytanie zadane 24 stycznia 2022 w C# przez mateusz45 Gaduła (3,240 p.)
+1 głos
1 odpowiedź 893 wizyt
pytanie zadane 12 stycznia 2022 w C# przez Czang Kai Shrek Obywatel (1,990 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...