.NET은 백만, 10 억 등과 같은 일반적인 숫자에 대한 상수가 내장되어 있습니까?

StackOverflow https://stackoverflow.com/questions/1644468

  •  10-07-2019
  •  | 
  •  

문제

.NET은 백만, 10 억 등과 같은 일반적인 숫자에 대한 상수가 내장되어 있습니까?

편집 : 제안 된 바와 같이, 이것은 1000000 또는 1000000000을 작성하는 대신 가독적 인 이유에 대한 것이 었습니다. 나는 내 자신을 만들 수 있다는 것을 알고 있습니다.

도움이 되었습니까?

해결책

10000000000과 같은 코드의 상수가 가독성 문제가있을 수있는 지점을 볼 수 있습니다. 그러나 나는 일반적인 상수보다는 특정 상황에 맞는 상수를 만들었습니다. 예를 들어

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

다른 팁

물론, 그들은 1e6, 1e9 등으로 명명되었습니다 ... ;-)

일반적으로 상수 값은 가치를 벗어난 의미론을 가진 리터럴에 가장 잘 사용됩니다. 예를 들어, 3.14159는 문자 그대로이지만, 넓은 중요한 수학적 값, π (근사치 임에도 불구하고)이기도합니다.

이에 비해 1,000,000과 같은 숫자는 단순히 문자 적이며 반드시 그 가치 이외의 일반적인 의미를 갖지 않으므로 내장 상수로 만드는 데 큰 가치가 없습니다. 그러나 특정 응용 프로그램 또는 컨텍스트에서는 중요 할 수 있습니다. 아마도 1,000,000은 최대 수의 수입니다. ShippingContainers 유조선은 보유하거나 비슷한 것을 할 수 있습니다. 그것이 당신이 상수를 사용하는 곳입니다.

백만과 10 억이 일반적인 숫자라고 생각하는 이유는 무엇입니까?

아니,

몇 가지 일정한 avallable이 있습니다

  • Double.epsilon
  • 수학

그러나 백만과 10 억은 아닙니다.

자신만의 상수를 만들 수 있습니다

public const int OneMillion = 1000000;

나는 당신이 int value = 1000000 자연스러운 끈으로 string value = "1 million".

기본적으로 .NET에는 존재하지 않지만 쉽게 코딩 할 수 있거나 Google에서 그러한 코드를 찾을 수 있다고 가정합니다.

예를 들어, 확장 메소드를 만들 수 있습니다. int 숫자를 인간 자연어 문자열로 변환합니다. (이것은 머리 오프에서 저렴한 코드입니다)

public static string ToNaturalString(this int value)
{
    if (value == 1000000)
        return "1 million";
    else
        return value.ToString();
}

그러한 일정이 있더라도 "10 억"이라는 단어는 미국이든 유럽인이든 다른 의미를 의미합니다.

북아메리카에서는 10 억이 1,000,000,000 = 10^9; 유럽에서는 10 억이 1,000,000,000,000 = 10^12입니다. (밀리 어드 = 10^9.)

나는 아니었다.

예를 들어 INT 또는 긴 숫자에 맞는 가장 크고 가장 작은 숫자에 대한 상수가 내장되어 있지만 해당 지점 사이에는 임의의 상수가 없습니다.

내가 가장 좋아하는 것은 다음과 같습니다.

public const float EleventyBillion = 110000000000;

나는 우리가 미국 10 억 (10 억)과 영국 (및 다른 사람들) (1 백만 명) (백만 백만) 사이에 차이가 있다는 이유로 하나를 가질 수 없다고 생각합니다.

짧은 규모와 긴 규모의 숫자 차이

혀에 뺨이 다소 혀를 켜지는 않지만 확장 방법을 멈추는 것은 아무것도 없습니다. int:

public static int million(this int i)
{
    return i * 1000000;
}

만들기 위해서

 int approximatePopulationOfUnitedStates = 300.million();

유효한 코드 ...

도서관 수업을하는 것처럼 깔끔한 일을 할 수 있습니다

public class One
{
  public const int Thousand = 1000;
  public const int Million = Thousand * Thousand;
  public const int Billion = Million * Million;
  ...
}

그런 다음 사용하러 가면 약간 깔끔해 보입니다.

int myNumber = 72 * One.Million;

나는 때때로 순전히 가독성을 위해 이것을한다 (그러나 전용 라이브러리가 아니라 수업의 맨 위에있는 것만으로도). 때로는 숫자와 같은 것을 갖는 것이 유용합니다.

// Add one to account for whatever
int countPlus1 = count + 1;

나중에 그것을 수많은 힙으로 언급한다면, 그것은 단지 코드를 약간 깔끔한 IMO로 만듭니다. 또한 시작에 짧은 댓글을 작성하는 것이 더 쉽기 때문에 댓글을 더 쉽게 만듭니다. count + 1 암호.

int million = 1000000;
int billion = 1000000000;

처럼 5, a, 그리고 -1, 이것들은 상수입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top