Loading...
XuTkO avatar XuTkO 2 Точки

Задача Inches to Centimeters

Може ли да ми кажете каква е разликата между двата кода, защото на единия ми дава 50%, а на другия 100?

50%

import java.util.Scanner;

public class otherExercise {

    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.print("inches= ");
        double inches = console.nextInt();
        double centimeters = 2.54 * inches;
       System.out.println("centimeters = " + centimeters );
    }
}

 

100 %

import java.util.Scanner;

public class otherExercise {

    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.print("inches= ");
        double inches = Double.parseDouble(console.nextLine());
        double centimeters = 2.54 * inches;
       System.out.println("centimeters = " + centimeters );
    }
}

 

Тагове:
0
Programming Basics
veronikaaa86 avatar veronikaaa86 365 Точки

Тъй като скоро гледах едно видео от архивно издание на курса (април 2017) и попаднах на обяснение именно за това. Ето линк - https://softuni.bg/trainings/resources/video/14348/video-screen-22-april-2017-simona-simeonova-programming-basics-with-java-april-2017

01:14:15 - до там скролни на видеото и ще ти стане ясно, че типа е double, a стойността на първият ти код (с 50%) е string. Но във видеото, разбира се е обяснено по-добре. :)

 

0
12/09/2017 00:39:15
RadostinStoychev avatar RadostinStoychev 128 Точки

Мисля че грешите,

Mетодите:
nextInt();
nextDouble();

чакат съответната стойност - int или double. Ако получат нещо друго, хвърлят exception.

Методите:
parseInt();
parseDouble();

използват класа Integer и съответно Double, които опаковат (wrap) int и double стойностите в обекти.

Тоест методите:
Integer.parseInt();
Double.parseDouble();

приемат String и след това го опаковат чрез wrapper в обект от тип int или double.

0
12/09/2017 01:01:27
veronikaaa86 avatar veronikaaa86 365 Точки

Аз именно това съм се опитала да обясня, но явно не съм успяла както трябва, за което се извинявам и за това дадох линка за видето. Защото в първият код, който е дал резултат 50% е написано това:

double inches = console.nextInt();

от което аз разбирам, че console.nextInt() чете като стринг.

а във вторият с резултат 100% :

double inches = Double.parseDouble(console.nextLine());

И пак казвам, знам че не съм добра по обясненията и реших да копна линк-а.

P.S. Аз благодаря на теб за хубавото обяснение и на мен ми помогна много :)

0
RadostinStoychev avatar RadostinStoychev 128 Точки

Радвам се, че съм помогнал.

Поздрави :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.