我正试图在我的列表框中表示正确的double值。例如,我的SQL数据库中的值表示为“0,09”。现在,我将某些列中的值放入带有“SELECT DISTINCT”语句的列表框中。在数据库中搜索时,我需要写“0.09”,因为“0,09”找到了值。那不是问题。我尝试用
转换每个双精度值 CultureInfo culInfo = new CultureInfo("en-US");
for (int i = 0; i < convertCol.Count; i++)
{
storeDouble = convertCol[i];
convertToString = storeDouble.ToString("0.######");
if (convertToString.Contains(","))
{
convertedString = convertToString.Replace(",", ".");
convertBackToDouble = double.Parse(convertedString, culInfo);
//Convert.ToDouble(convertedString);
convertedCol.Add(convertBackToDouble);
}
else
{
convertedCol.Add(convertCol[i]);
}
}
DataColumn dc = new DataColumn(form1.getColName());
dc.DataType = typeof(double);
datTable.Columns.Add(dc);
for (int j = 0; j < convertedCol.Count; j++)
{
datTable.Rows.Add(convertedCol[j]);
}
form1.colStorList.DisplayMember = form1.getColName();
form1.colStorList.ValueMember = "Column";
form1.colStorList.DataSource = datTable;
当我离开cultureInfo并尝试“Convert.ToDouble”时,“0,09”将转换为“9.0”。使用cultureInfo似乎是正确的,但我的列表框仍然有像“0,09”这样的条目。如何“强制”ListBox将我的值显示为“0.09”?
答案 0 :(得分:1)
尝试添加此代码
form1.colStorList.FormatInfo = new CultureInfo("en-US");
后
form1.colStorList.ValueMember = "Column";