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

C# Kalkulator BMI ( Liczby po przecinku)

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
4,550 wizyt
pytanie zadane 2 kwietnia 2016 w C# przez VendE Użytkownik (980 p.)

Witam wszystkich serdecznie :) 

Potrzebuję pomocy z moim kalkulatorem BMI.

Polecenie: Napisz program, który oblicza wskaźnik masy ciała BMI. Program ma prosić
użytkownika o podanie wagi w kg oraz wzrostu w metrach.

 

Kalkulator jest prawie skończony ale mam jeden problem z którym nie mogę się uporać, a żadne materiały w sieci nie rozjaśniają tego. Więc po wpisaniu wagi 70,wzrostu 1.78 (polecenie mówi aby podać w metrach), metody Math.Round oraz pomnożeniu bmi * 100 otrzymuje wynik 229 (wynik powinien być 22,9). W jaki sposób zrobić aby przecinek znalazł się w tej liczbie ? Próbowałem różnych metod z Math.Round ale nic z tego ponieważ albo wynik jest inny albo wyświetla mi wartość 0. 

Bardzo prosiłbym o pomoc :) Czekają na mnie kolejne kroki w zadaniu, a utknąłem już sporo w jednym miejscu. 



 

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double waga, wzrost, bmi;
            Console.WriteLine("Podaj swoją wagę: ");
            waga = Double.Parse(Console.ReadLine());
            Console.WriteLine("Podaj swój wzrost: ");
            wzrost = Double.Parse(Console.ReadLine());

            bmi = (waga /(wzrost * wzrost));
            Console.WriteLine(Math.Round(bmi*100));
            Console.ReadKey();
        }
    }
}

 

3 odpowiedzi

0 głosów
odpowiedź 2 kwietnia 2016 przez drek Gaduła (4,980 p.)
wybrane 2 kwietnia 2016 przez VendE
 
Najlepsza

Ten kod wydaje mi się, że działa dobrze

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

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			double waga, wzrost, bmi;
			Console.WriteLine("Podaj swoją wagę: ");
			waga = Double.Parse(Console.ReadLine());
			Console.WriteLine("Podaj swój wzrost: ");
			wzrost = Double.Parse(Console.ReadLine());

			bmi = (waga /(wzrost * wzrost));
			Console.WriteLine(Math.Round(bmi, 2));
			Console.ReadKey();
		}
	}
}

Niewiem poco chcesz tam coś mnożyć przez 100, i też niewiem dlaczego chcesz wynik zaokrąglać. Kod powyżej zaokrągla do dwóch miejsc po przecinku. To co zmieniłem to:

Console.WriteLine(Math.Round(bmi, 2));

U mnie działa. Sprawdź: https://portal.abczdrowie.pl/jak-obliczyc-bmi#oblicz-swoje-bmi

komentarz 2 kwietnia 2016 przez VendE Użytkownik (980 p.)

BARDZO DZIĘKUJE !!!

Przedtem próbowałem tej metody ale nie działało...powodem było to że zamiast pomnożyć 70*1,78 to robiłem 70*178 co dawało mi po prostu 0. Jeszcze raz bardzo dziękuję za chęć pomocy !!!

Console.WriteLine(Math.Round(bmi, 2));

 

komentarz 2 kwietnia 2016 przez drek Gaduła (4,980 p.)
Ok. Niema sprawy. W sumie to wszystko miałeś dobrze (no poza tym mnożeniem przez 100) ;)
komentarz 2 kwietnia 2016 przez VendE Użytkownik (980 p.)
Właśnie dużo kombinowałem z tym mnożeniem i nawet dzieleniem ale ciągle były jakieś problemy, albo pokazywało 0 albo ucinało przecinek lub po prostu zaokrągliło mi liczbę. Spytałem jeszcze innych którzy mają "dużą" styczność z programowaniem jednak też powiedzieli mi "pomnóż przez 1000" itd.
0 głosów
odpowiedź 2 kwietnia 2016 przez hubot Dyskutant (9,090 p.)
Chyba kiedyś robiłem taki program w VB.NET.
–1 głos
odpowiedź 2 kwietnia 2016 przez iWantCode Bywalec (2,170 p.)
Są 2 opcje: 1. Nie mnóż przez 100 tylko 10. 2. Podziel przez 10.
komentarz 2 kwietnia 2016 przez VendE Użytkownik (980 p.)
Dziękuję za szybką odpowiedź !
Niestety ale po wykonaniu tych dwóch rzeczy ciągle są problemy. Gdy pomnożę przez 10 dostaje liczbę 221 (zaokrąglenie 22,9), a w przypadku podzielenia dostaje po prostu 2 .

Podobne pytania

+1 głos
1 odpowiedź 900 wizyt
pytanie zadane 28 grudnia 2020 w C# przez Tukan Nowicjusz (190 p.)
+1 głos
1 odpowiedź 1,002 wizyt
pytanie zadane 17 lutego 2022 w C# przez DeniS1 Początkujący (410 p.)
0 głosów
2 odpowiedzi 769 wizyt
pytanie zadane 25 lipca 2018 w C# przez Piotr86PL Początkujący (340 p.)

93,439 zapytań

142,431 odpowiedzi

322,674 komentarzy

62,802 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

...