• 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)

VPS Starter Arubacloud
0 głosów
3,899 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,100 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ź 539 wizyt
pytanie zadane 28 grudnia 2020 w C# przez Tukan Nowicjusz (190 p.)
+1 głos
1 odpowiedź 512 wizyt
pytanie zadane 17 lutego 2022 w C# przez DeniS1 Początkujący (410 p.)
0 głosów
2 odpowiedzi 620 wizyt
pytanie zadane 25 lipca 2018 w C# przez Piotr86PL Początkujący (340 p.)

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...