Я изучаю TDD и решил создать класс калькулятора для запуска. Сначала я сделал основной, и теперь я нахожусь на функции Square Root.C# Вычитание неточно даже с десятичными знаками?
Я использую этот метод для получения корня http://www.math.com/school/subject1/lessons/S1U1L9DP.html Я проверил его с несколькими номерами, и я всегда получаю точные ответы. довольно легко понять.
Теперь у меня странная проблема, потому что с некоторыми номерами я получаю правильный ответ, а с некоторыми - нет.
Я отладил код и выяснил, что я не получаю правильный ответ, когда использую вычитание.
Я использую десятичные знаки, чтобы получить наиболее точный результат.
, когда я делаю:
18/4.25
В настоящее время я получаю: 4.2352941176470588235294117647
, когда оно должно быть: 4.2352941176470588235294117647059
(с помощью окна калькулятор)
в конце пути, это ближайший я добираюсь до корня 18
:
4.2426406871192851464050688705^2 = 18.000000000000000000000022892
мой вопрос:
Могу ли я уточнить это?
Как работает арифметика с плавающей запятой: http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – duffymo
Когда вы говорите «десятичный», вы имеете в виду «десятичный» тип ? Или вы используете 'double' или' float'? –
@ThomasLevesque i означает десятичный тип – samy