package com.javarush.task.task03.task0304;
/*
Задача на проценты
*/
public class Solution {
public static double addTenPercent(int i) {
//напишите тут ваш код
double m = 10.0 * i / 100; (правильно)
double m = 10 * i / 100; (неправильно)
...
Абрамович
14 уровень
Не понял немного, почему обязательно умножать на 10.0 , а не на просто на 10 . Объясните, пожалуйста. (пример снизу)
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
19 июня 2018, 19:03
Даже если твоя m объявлена как double, в выражении
У тебя фигурируют только int и по этому результат тоже получается в int и отбрасывает дробную часть, но представляется как double потому, что так объявлена m.
Передай например в качестве i 51 и ты увидишь, что второй метод вернет тебе 5.0 хотя должен бы вернуть 5.1
Что бы не морочить себе этим голову в дальнейшем есть несколько методов о которых я знаю:
- записать любое число как double, так например 10.0 в формуле тебе поможет.
- дописать перед любым числом или переменной (double), что явно представит ее в этом формате
- передавать переменную i не как int, а как double сразу.
P.S. А задача на добавление 10% решается простым умножением на 1.1 0
Олег
19 июня 2018, 13:49решение
Когда пишешь 10.0 среда разработки понимает, что ты хочешь получить дробные числа и результат автоматически приводит к типу double.
+3