반응형
C #에서 숫자가 양수인지 음수인지 어떻게 확인합니까?
C #에서 숫자가 양수인지 음수인지 어떻게 확인합니까?
bool positive = number > 0;
bool negative = number < 0;
물론 아무도 정답을 얻지 못했습니다.
num != 0 // num is positive *or* negative!
지나침!
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);
}
}
Math.Sign 방법은 이동 할 수있는 한 가지 방법입니다. 음수의 경우 -1, 양수의 경우 1, 0과 같은 값의 경우 0을 반환합니다 (예 : 0에는 부호가 없음). 배정 밀도 및 단 정밀도 변수는 NaN과 동일한 경우 예외 ( ArithmeticException )가 발생합니다.
num < 0 // number is negative
이것은 업계 표준입니다.
int is_negative(float num)
{
char *p = (char*) malloc(20);
sprintf(p, "%f", num);
return p[0] == '-';
}
당신은 영인들과 당신의 공상보다 적습니다.
나의 시대에 우리는 사용해야했다 Math.abs(num) != num //number is negative
!
public static bool IsPositive<T>(T value)
where T : struct, IComparable<T>
{
return value.CompareTo(default(T)) > 0;
}
네이티브 프로그래머 버전. 리틀 엔디안 시스템의 경우 동작이 올바른 것입니다.
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;
}
이것을 사용하지 마십시오.
if (num < 0) {
//negative
}
if (num > 0) {
//positive
}
if (num == 0) {
//neither positive or negative,
}
또는 "else ifs"를 사용하십시오
C #에서 System.Int32
일명 32 비트 부호있는 정수의 경우 int
:
bool isNegative = (num & (1 << 31)) != 0;
public static bool IsNegative<T>(T value)
where T : struct, IComparable<T>
{
return value.CompareTo(default(T)) < 0;
}
You just have to compare if the value & its absolute value are equal:
if (value == Math.abs(value))
return "Positif"
else return "Negatif"
bool isNegative(int n) {
int i;
for (i = 0; i <= Int32.MaxValue; i++) {
if (n == i)
return false;
}
return true;
}
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
}
This code takes advantage of SIMD instructions to improve performance.
public static bool IsPositive(int n)
{
var v = new Vector<int>(n);
var result = Vector.GreaterThanAll(v, Vector<int>.Zero);
return result;
}
참고URL : https://stackoverflow.com/questions/4099366/how-do-i-check-if-a-number-is-positive-or-negative-in-c
반응형
'IT story' 카테고리의 다른 글
HTML로 다운로드 링크를 만들려면 어떻게해야합니까? (0) | 2020.05.07 |
---|---|
bash에서 부동 소수점 나누기를 어떻게 사용합니까? (0) | 2020.05.07 |
"필수"에 대한 WebStorm 경고 "해결되지 않은 기능 또는 방법"을 수정하는 방법 (Firefox 애드온 SDK) (0) | 2020.05.07 |
파이썬은 긴 문자열을 자릅니다 (0) | 2020.05.07 |
사람이 읽을 수있는 파일 크기 버전을 얻기 위해 재사용 가능한 라이브러리? (0) | 2020.05.07 |