왜 0.ToString("#.##")
빈 문자열을 반환합니까? 그것은해야하지 0.00
또는 적어도 0 ?
왜 0.ToString("#.##")
빈 문자열을 반환합니까? 그것은해야하지 0.00
또는 적어도 0 ?
답변:
#
문자열 형식은 값이 선택 사항임을 나타냅니다. 출력을 얻으려면 0.00
다음이 필요합니다.
0.ToString("0.00");
이 메서드에 전달할 수있는 사용자 지정 숫자 형식 은 여기를 참조 하십시오 .
형식 문자열에서는 #
선택적 문자 자리 표시자를 나타내는 데 사용되기 때문입니다. 숫자를 나타내는 데 필요한 경우에만 사용됩니다 .
대신 0.ToString("0.##");
이렇게하면 :0
흥미롭게도 이렇게 0.ToString("#.0#");
하면 :.0
세 자리를 모두 원하는 경우 다음을 0.ToString("0.00");
생성합니다.0.00
이 답변에 대한 의견에서 귀하의 주장은 다음과 같습니다.
숫자 값이 0이면 왜 빈 문자열을보고 싶어할까요? '0'이 표시되어야합니다.
응답은 간단합니다. 표시 방법을 선택할 수 있습니다 . 이것이 바로 사용자 지정 형식 문자열의 용도입니다. 필요에 따라 잘못된 형식 문자열을 선택했습니다 .
Digit Placeholder 에 대한 문서에 따르면 .
형식화되는 값의 형식 문자열에서 '#'이 나타나는 위치에 숫자가 있으면 해당 숫자가 결과 문자열에 복사됩니다. 그렇지 않으면 결과 문자열의 해당 위치에 아무것도 저장되지 않습니다. 이 지정자는 '0'이 문자열의 유일한 숫자 인 경우에도 유효 숫자가 아닌 경우 '0'문자를 표시하지 않습니다. 표시되는 숫자의 유효 숫자 인 경우 '0'문자가 표시됩니다. "##"형식 문자열은 값이 소수점 앞의 가장 가까운 숫자로 반올림되도록합니다. 여기서 항상 0에서 반올림합니다. 예를 들어 34.5를 "##"로 포맷하면 값 35가됩니다.
0을 표시하려면 Zero PlaceHolder를 사용하십시오.
f 형식화되는 값의 형식 문자열에서 '0'이 나타나는 위치에 숫자가 있으면 해당 숫자가 결과 문자열에 복사됩니다. 소수점 앞의 가장 왼쪽 '0'과 소수점 뒤의 가장 오른쪽 '0'의 위치는 결과 문자열에 항상 존재하는 자릿수 범위를 결정합니다.
"00"지정자는 값이 소수점 앞의 가장 가까운 숫자로 반올림되도록합니다. 여기서는 항상 0에서 반올림합니다. 예를 들어 34.5를 "00"으로 포맷하면 값 35가됩니다.
이 시도 0.ToString("#,##; #,##;0")
첫 번째 섹션은 양수 값에 적용되고 두 번째 섹션은 음수 값에 적용되며 세 번째 섹션은 0에 적용됩니다.
다음과 같이 사용하십시오.
0.ToString("#0.##")
0
이후 #
값이 0이면 출력 값을 0으로 설정하고 그렇지 않으면 값을 표시합니다. 그래서 0.0.ToString("#0.##")=0.00
및10.ToString("#.##")=10.00