항상 부호를 표시하는 사용자 정의 숫자 형식 문자열 부호를 출력하도록 표준 또는

항상 부호를 출력하도록 표준 또는 사용자 정의 숫자 형식 문자열을 지정할 수있는 방법이 있습니까? (ve + -ve 또는 -ve)



답변

그래 넌 할수있어. 조건부 서식이 있습니다. MSDN의 조건부 서식 참조

예 :

string MyString = number.ToString("+0;-#");

세미콜론으로 구분 된 각 섹션이 양수와 음수를 나타내는 경우

또는:

string MyString = number.ToString("+#;-#;0");

0에 더하기 부호를 원하지 않으면


답변

조건부 서식을 사용할 때 음수 값은 자동으로 부호를 얻지 않습니다. 당신은해야합니다

string MyString = number.ToString("+#;-#;0");


답변

string.Format ();에서 형식 문자열을 사용할 수도 있습니다. 형식 문자열은 색인과 콜론 ( ‘:’)으로 구분됩니다.

var f = string.Format("{0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}", number);

숫자 {+1, -1, 0}의 경우 다음을 제공합니다.

1, 힘 부호 +1, 영점 부호 없음 +1
-1, 힘 부호 -1, 영점 부호 없음 -1
0, 힘 부호 +0, 부호 없음 0

string.Format동일한 결과를 얻는 대신 보간 문자열을 사용할 수도 있습니다.

var f = $"{number}, Force sign {number:+#;-#;+0}, No sign for zero {number:+#;-#;0}";


답변

다른 답변과 달리 +1, -1, +0 (인수 1, -1, 0)을 얻으려면 다음 형식을 사용해야합니다.

String.Format("{0:+#;-#;+0}", 0));  // output: +0

또는

String.Format("{0:+0;-#}", 0));  // output: +0

그냥 사용하면 0에 +#;-#대해서만 표시됩니다 +(아닙니다 +0).

“#”사용자 지정 지정자 ( https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )

이 지정자는 문자열에서 0이 유일한 숫자 인 경우에도 유효 숫자가 아닌 0을 표시하지 않습니다. 표시되는 숫자에서 유효 숫자 인 경우에만 0이 표시됩니다.

또한 십진 정밀도가 필요한 경우 다음과 같이 지정해야합니다.

String.Format("{0:+0.##;-#.##}", 0));  // output: +0

또는 항상 표시하지 않으려면 다음과 같이하십시오.

String.Format("{0:+0.00;-#.00}", 0));  // output: +0.00


답변

모든 유형의 숫자 ​​표현식의 경우 :

+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0

세 가지 경우에 세 부분을 사용하십시오. 긍정적; 부정적; 제로

예제의 다른 측면들 :

  • 0은 부호가 없습니다. “zero”와 같은 것으로 표시 할 수 있습니다.

  • 1보다 작은 절대 값은 소수점 앞에 0을 갖습니다. 맛에 맞게 조정하십시오.

  • 자릿수는 최대 및 최소 절대 10 진수 값입니다. 맛에 맞게 조정하십시오.

  • 소수점 문자는 문화에 따라 다릅니다. .NET 대체품.

  • 그룹화 구분 기호는 선택 사항입니다. 캐릭터는 문화에 따라 다릅니다. .NET 대체품. 위치는 문화에 따라 다르지만 형식 문자열로만 제어됩니다. 또한 Format의 특수 문자 (.. # 0 포함)를 제외한 다른 문자를 사용합니다.


답변

댓글을 달 수 없으므로 여기에 답하십시오 (너트 평판 시스템 ….)

number.ToString ( “+ 0;-#”)을 사용하여 UTC 문자열 TimeFormat을 매우 잘 만들 수 있습니다

PowerShell 코드에 표시

"$([System.DateTime]::Now.ToString('HH:mm:ss.fff'))$($([System.TimeZoneInfo]::Local.GetUtcOffset([System.DateTime]::Now).TotalMinutes.ToString('+0;-#')))"

감사합니다 @gcores https : //.com/users/40256/gcores


답변