항상 부호를 출력하도록 표준 또는 사용자 정의 숫자 형식 문자열을 지정할 수있는 방법이 있습니까? (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