Функция 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() есть и делает.

Другие вопросы по тегам