Как проверить, является ли число положительным или отрицательным в С#?
Как проверить, является ли число положительным или отрицательным в С#?
Ответ 1
bool positive = number > 0;
bool negative = number < 0;
Ответ 2
Конечно, никто не дал правильного ответа,
num != 0 // num is positive *or* negative!
Ответ 3
OVERKILL!
public static class AwesomeExtensions
{
public static bool IsPositive(this int number)
{
return number > 0;
}
public static bool IsNegative(this int number)
{
return number < 0;
}
public static bool IsZero(this int number)
{
return number == 0;
}
public static bool IsAwesome(this int number)
{
return IsNegative(number) && IsPositive(number) && IsZero(number);
}
}
Ответ 4
num < 0 // number is negative
Ответ 5
Метод Math.Sign - это один из способов. Он будет возвращать -1 для отрицательных чисел, 1 для положительных чисел и 0 для значений, равных нулю (т.е. Нуль не имеет знака). Переменные с двойной и одиночной точностью вызывают исключение (ArithmeticException), если они равны NaN.
Ответ 6
Это отраслевой стандарт:
int is_negative(float num)
{
char *p = (char*) malloc(20);
sprintf(p, "%f", num);
return p[0] == '-';
}
Ответ 7
Вы, молодые люди, и ваши причудливые знаки меньше.
В свое время нам пришлось использовать Math.abs(num) != num //number is negative
!
Ответ 8
public static bool IsPositive<T>(T value)
where T : struct, IComparable<T>
{
return value.CompareTo(default(T)) > 0;
}
Ответ 9
Родная версия программатора. Поведение является правильным для систем с прямым порядком байтов.
bool IsPositive(int number)
{
bool result = false;
IntPtr memory = IntPtr.Zero;
try
{
memory = Marshal.AllocHGlobal(4);
if (memory == IntPtr.Zero)
throw new OutOfMemoryException();
Marshal.WriteInt32(memory, number);
result = (Marshal.ReadByte(memory, 3) & 0x80) == 0;
}
finally
{
if (memory != IntPtr.Zero)
Marshal.FreeHGlobal(memory);
}
return result;
}
Никогда не используйте это.
Ответ 10
if (num < 0) {
//negative
}
if (num > 0) {
//positive
}
if (num == 0) {
//neither positive or negative,
}
или используйте "else ifs"
Ответ 11
Для 32-разрядного целого числа со знаком, например System.Int32
, aka int
в С#:
bool isNegative = (num & (1 << 31)) != 0;
Ответ 12
public static bool IsNegative<T>(T value)
where T : struct, IComparable<T>
{
return value.CompareTo(default(T)) < 0;
}
Ответ 13
Вам просто нужно сравнить, если значение и его абсолютное значение равны:
if (value == Math.abs(value))
return "Positif"
else return "Negatif"
Ответ 14
bool isNegative(int n) {
int i;
for (i = 0; i <= Int32.MaxValue; i++) {
if (n == i)
return false;
}
return true;
}
Ответ 15
int j = num * -1;
if (j - num == j)
{
// Num is equal to zero
}
else if (j < i)
{
// Num is positive
}
else if (j > i)
{
// Num is negative
}
Ответ 16
Этот код использует преимущества SIMD-инструкций для повышения производительности.
public static bool IsPositive(int n)
{
var v = new Vector<int>(n);
var result = Vector.GreaterThanAll(v, Vector<int>.Zero);
return result;
}