Jagadeesh Bollabathini Ответов: 2

Найдите ошибку в данной задаче


Привет,
Недавно я дал интервью, где они задали один вопрос, чтобы найти ошибку в приведенном ниже коде.

Было бы полезно, если бы кто-нибудь мог описать...

class Program
    {
        static void Main(string[] args)
        {
            int i = GetDecimalPlaces(0.001);
            Console.Write(i.ToString());
            Console.ReadLine();
        }

        public static int GetDecimalPlaces(double accuracy)
        {
            return Math.Min(0, -(int)(Math.Floor(Math.Log10(accuracy))));
            
        }
    }


ответ должен быть "3 "для"0.001".

Спасибо.

Что я уже пробовал:

Я понятия не имею о Log10.

Также я пробовал гуглить, но результата нет.

CodeReady

Почему бы вам не попробовать это отладить, для этого вам не понадобится google.

2 Ответов

Рейтинг:
12

Peter Leow

Logarithm10 (x) вернет мощность, которую база в данном случае 10 должна поднять, чтобы получить значение x,
в этом случае x равно 0.001, поэтому log10 (0.001) возвращает -3, то есть 10^(-3) = 0.001
В любом случае, просто переоденься

Math.Min

к
Math.Max


Jagadeesh Bollabathini

Да.
Он возвращает ответ, как и ожидалось.

Рейтинг:
0

Patrice T

Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь, чтобы показать вам, что делает ваш код.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам.