나는 이것에 관해 많은 질문을하지만 나는 이것을 reggarding하는 것을 발견하지 못했다.예기치 않은 숫자 서식 출력
나는이 형식 다음과 같은 형식 번호로 시도 : value.ToString ("N", 새로운 CultureInfo를 ("FR-CA"))을. 값이 인 경우 float입니다. 형식은 적용되지만 그렇게 할 수는 없습니다. 이런 식으로 뭔가를해야만 포맷하는 방법이
123456 display as 123 456.00
123456.789 display as 123 456.79 // rounded
1234.5 display 1 234.50 //added a 0 padding
있습니까 : 나는 exemples 여기 this article about formatting
에 대해 참조?
123456 display as 123 456
123456.789 display as 123 456.789
1234.5 display as 1 234.5
다음은 코드가 나는 형식
private void dgvform_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
float val;
if ((e.ColumnIndex == valeur.Index || e.ColumnIndex == valeurEN.Index)
&& dgvform.Rows[e.RowIndex].Cells[type_d.Index].Value != null && dgvform.Rows[e.RowIndex].Cells[type_d.Index].Value.ToString() == "N"
&& dgvform.Rows[e.RowIndex].Cells[valeur.Index].Value != null
&& float.TryParse(dgvform.Rows[e.RowIndex].Cells[valeur.Index].Value.ToString(), out val))
{
if (e.ColumnIndex == valeurEN.Index)
e.Value = val.ToString("N", new CultureInfo(_formatEN));
else
e.Value = string.Format("{0:# ### ###.####}", val);
}
}
이가있는 DataGridView의 일부를 적용하려고했다입니다. 큰 if
은이 셀에 서식을 적용해야하는지 결정하는 것입니다. valeur
, valeurEN
모두 포매팅을 적용해야합니다. e.Value = val.ToString("N", new CultureInfo(_formatEN));
은 서식을 적용하는 이전 방법입니다. _formatEN
은 기본적으로 "en-US"입니다.
기본적으로 천 단위 구분 기호를 추가하고 올바른 소수 구분 기호를 사용하고 싶습니다. 내가 잘못하고있는 것에 대해 까다 롭지 않으십니까?
/편집 : 값 내가 당신이 custom numeric format string를 구축 할 필요가 가정 플로트
'value'의 타입을 지정하십시오 (ToString()에 넣으려는 데이터 타입은 무엇입니까?)? – DonBoitnott
@DonBoitnott 질문에 답변을 추가해 주셔서 감사합니다. –
데이터 유형 정밀도 문제입니다. 아래 편집을 참조하십시오. – Douglas