CultureInfo 和列表框中表示的困难
Difficulties with CultureInfo and representation in Listbox
我试图在我的列表框中表示正确的双精度值。例如,我的 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”这样的条目。如何 "force" 列表框将我的值显示为“0.09”?
尝试添加此代码
form1.colStorList.FormatInfo = new CultureInfo("en-US");
之后
form1.colStorList.ValueMember = "Column";
我试图在我的列表框中表示正确的双精度值。例如,我的 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”这样的条目。如何 "force" 列表框将我的值显示为“0.09”?
尝试添加此代码
form1.colStorList.FormatInfo = new CultureInfo("en-US");
之后
form1.colStorList.ValueMember = "Column";