2012-04-11 77 views
-1
Min = Convert.ToInt32(cbMin.SelectedItem); 

这是我的问题,使用该行将从combobox转换为整数变量。现在,如果从我的下拉菜单中选择“00”或“05”,该值只会以“0”或“5”出现。它似乎只在数字“0”开始时才会发生。从Combobox双位数转换为int双位数

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

+2

我很困惑。你是否说*你不希望''05''被转换为'5'?如果不是,你期望什么* – Gabe 2012-04-11 15:47:27

+2

你在'Min'中使用的值是什么?如果你需要的只是数值,那么05 = 005 = 000005 = 5。如果你需要前导0作为显示目的,使用'ToString()'而不是'Convert.ToInt32()'。 – 2012-04-11 15:47:30

+0

到底什么是“int double”数字?你偶然意味着一个整数的双倍数? – 2012-04-11 15:50:48

回答

2

不转换价值整数,如果你想领先的零化妆用字符串

i.ToString("00") 

的尝试了这一点soltuon会为你工作

最终代码是

字符串s =(转换。 ToInt32(cbMin.SelectedItem))。ToString(“00”)

编辑

如果你alredy assinged valeu以0比你只需要编写

string Min = cbMin.SelectedItem.ToString(); 
2

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

  • INT 0是不一样的字符串“0”
  • INT 1不一样的字符串“1”

如果需要输出与领先的0值,从来没有在数学上使用它,你应该保持它作为一个字符串。不要将它首先转换为int。

如果你需要它作为一个整数来进行计算,那么你需要将它转换为int,但是在需要前导零的地方,将其格式化。将其转换回字符串并使用数据格式来获得前导零。

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

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

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

+0

我不知道前导零只能在字符串数据类型中使用。谢谢你的信息! – 2012-04-11 15:56:45

1

没有意义使整数5作为05C#。但是,如果想要一个字符串有这种格式,你可以这样做:

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

或者

string Min = String.Format("{0:0#}", Convert.ToInt32(cbMin.SelectedItem));