-1
Min = Convert.ToInt32(cbMin.SelectedItem);

这是我的问题,使用该行将组合框转换为整数变量。现在,如果我从下拉列表中选择“00”或“05”,则该值仅显示为“0”或“5”它似乎仅在数字以“0”开头时发生

我错过了什么吗?

PS:顺便说一句,当我设置组合框时,我只是使用侧面的属性部分并填写了集合。只是想确定我把它扔在那里。

4

3 回答 3

2

如果要前导零使用字符串,请不要将值转换为整数

i.ToString("00")

试试这个解决方案会为你工作

最终代码是

字符串 s = (Convert.ToInt32(cbMin.SelectedItem)).ToString("00")

编辑

如果你已经用 0 分配了 valeu ,那么你只需要写

string Min = cbMin.SelectedItem.ToString();
于 2012-04-11T15:47:10.177 回答
2

整数没有前导零。它们是数字数据类型。前导零只能在字符串数据类型中使用。

  • int 0 与字符串“0”不同
  • int 1 与字符串“1”不同

如果您需要输出带有前导 0 的值,并且从不在数学计算中使用它,则应将其保留为字符串。首先不要将其转换为 int 。

如果需要将其作为整数进行计算,则需要将其转换为 int,但在需要前导零的地方,请对其进行格式化。将其转换回字符串并使用数据格式获取前导零。

"1".ToString("00") 将导致“01”。

"15".ToString("00")将导致“15”。

有关格式化数字数据类型的更多信息,请参阅此处的文档此处的自定义数字格式字符串(如我上面的示例所示)文档。

于 2012-04-11T15:47:38.820 回答
1

505C#中那样制作整数是没有意义的。但是如果想要一个字符串有这种格式,你可以这样做:

string Min = Convert.ToInt32(cbMin.SelectedItem).ToString("00");

或者

string Min = String.Format("{0:0#}", Convert.ToInt32(cbMin.SelectedItem));
于 2012-04-11T16:02:51.217 回答