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

Problem z double i zmiana int w double

Object Storage Arubacloud
+1 głos
337 wizyt
pytanie zadane 20 kwietnia 2016 w Java przez KamilloPL Gaduła (3,470 p.)

double tip = 12*20/100; 

ręcznie licząc na kalkulatorze wychodzi 2.4
program liczy 2.0

robię zadanie z https://www.hackerrank.com/challenges/30-operators/tutorial

 

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Arithmetic {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double mealCost = scan.nextDouble(); // original meal price
        int tipPercent = scan.nextInt(); // tip percentage
        int taxPercent = scan.nextInt(); // tax percentage
        scan.close();
      
        // Write your calculation code here.
        mealCost = 12.00;
        tipPercent=20;
        taxPercent=8;
        double tip = 12* tipPercent/100;
        double tax = 12 * taxPercent/100;
        
        // cast the result of the rounding operation to an int and save it as totalCost 
        double total = mealCost + tip + tax;
        System.out.println(tip);
        int totalCost = (int) Math.round(total);
      
        // Print your result
        System.out.println("The total meal cost is " + totalCost + " dollars.");
    }
}

Sample Input

12.00
20
8

Sample Output

The total meal cost is 15 dollars.

Explanation

Given: 
mealCost=12 tipPercent=20 taxPercent=8t

Calculations: 
tip=12×20100=2.4 
tax=12×8100=0.96 
totalCost=mealCost+tip+tax=12+2.4+0.96=15.36
round(totalCost)=15

We round totalCosttotalCost to the nearest dollar (integer) and then print our result:

The total meal cost is 15 dollars.

 

ciąglę mi kompiluje tip jako 0.0 

jeżeli dam zamiast int tipPercent na double tipPercent to wychodzi dobrze ale w zadaniu nie mogę nic ruczać powyżej 1 komentarza 

1 odpowiedź

+3 głosów
odpowiedź 20 kwietnia 2016 przez Mar Cin Dyskutant (8,900 p.)

Rzutowanie jawne:

double liczba1;

int liczba2;

liczba2=(int)liczba1;

 

komentarz 20 kwietnia 2016 przez KamilloPL Gaduła (3,470 p.)
 double tip = 12*(double)tipPercent/100;

wyszło 2.4 :) 

2
komentarz 20 kwietnia 2016 przez Mar Cin Dyskutant (8,900 p.)
W przypadku konwersji z Double na Int tracisz jakiś ułamek,dlatego przy utracie jakiejś części pamięci musisz zastosować rzutowanie.W odwrotnym przypadku nie jest potrzebne jawne rzutowanie.

Podobne pytania

0 głosów
2 odpowiedzi 141 wizyt
pytanie zadane 26 kwietnia 2020 w C i C++ przez Ladro Nowicjusz (140 p.)
0 głosów
1 odpowiedź 2,751 wizyt
pytanie zadane 25 września 2019 w C i C++ przez Xenon02 Nowicjusz (190 p.)
0 głosów
1 odpowiedź 1,980 wizyt
pytanie zadane 18 grudnia 2016 w C i C++ przez Jan Dobrakowski Użytkownik (580 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,965 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!

...