Функция SIGN(double x,double y) в C++
Что делает функция SIGN(double x,double y) на языке C++ и как ее перевести на C#
3 ответа
Такая функция существует в Фортане http://gcc.gnu.org/onlinedocs/gfortran/SIGN.html
SIGN(A,B) returns the value of A with the sign of B.
If B >= 0 then the result is ABS(A), else it is -ABS(A).
Возможно, кто-то реализовал ту же функцию в C++ (но что-то нестандартное, а не стандартную часть C++ или стандартные библиотеки).
C# версия этого будет
A = Math.Abs(A);
if (B<0.0) A = -A;
В коде C++, который вы переводите на C#, ищите определение макроса или определение встроенной функции для SIGN
, В определении должно быть прописано, как именно вы должны реализовать его в C#.
Если бы мне пришлось угадывать из названия, SIGN(x,y)
возвращает true, если x
а также y
иметь тот же знак, и ложь в противном случае.
Стандартная библиотека C++ не имеет SIGN()
функция. Ваш вопрос не дает мне достаточно информации, чтобы точно сказать вам, что это SIGN()
есть, но C++ следует за старым языком программирования C, и моя осведомленная догадка такова, что SIGN()
макрос препроцессора, определенный в старом стиле C.
Найдите в своем коде строку, которая начинается #define SIGN
возможно, с более чем одним пробелом между #define
и SIGN
, Если вы найдете линию, она, вероятно, расскажет вам SIGN()
есть и делает.