2017-02-05 9 views
1

Если входное значение -0.088 и я хочу взять с x = 0.8 как этот 0.8 - -0.088, но в итоге я хочу получить 0.712 вместо 0.888, как это было бы с минус 0.8 - 0.088.Math функции для удаления минус

Как удалить минус из числа без прямой обработки строк, можно использовать некоторые функции Math для такого случая:

double x1 = 0.8; 
    double x2 = 0.8; 
    double a = -0.088; 
    double b = 0.088; 

    x1 = (x1 - a); 
    x2 = (x2 - b); 

    Console.WriteLine("0.8 minus -0.088 equals to [ " + x1 + 
       " ]\r\n0.8 minus 0.088 equals to [ " + x2 + " ]"); 

результат:

0.8 minus -0.088 equals to [ 0.888 ] 
0.8 minus 0.088 equals to [ 0.712 ] 

желаемого результата:

0.8 minus -0.088 equals to [ 0.712 ] 
0.8 minus 0.088 equals to [ 0.712 ] 
+0

@MikeWodarczyk Это вопрос 'C#', а не 'c/C++' – MickyD

ответ

5

Удаление минуса соответствует математической концепции absolute value. реализация .NET этой функции Math.Abs метод:

x1 = (x1 - Math.Abs(a)); 
3

Это математически правильно, хотя. Выполнение 0.8 - -0.088, приведет к 0.8 + 0.088. Попробуйте использовать Math.Abs перед их вычитанием. Обратитесь к этому: https://www.dotnetperls.com/math-abs

x1 = (x1 - Math.Abs(a)); 
    x2 = (x2 - Math.Abs(b)); 

Это должно вернуть желаемый результат.

Надеюсь, это поможет!