我希望能够处理列表框中的小数位。
List<int> listInt = new List<int>();
listInt.Add(Convert.ToInt32("5.7"));
textBox1.Clear();
listBox1.Items.Clear();
for (int i = 0; i < listInt.Count; i++)
{
listBox1.Items.Add(listInt[i]);
}
使用上面的代码我收到错误:输入字符串的格式不正确。
我试过读这个:C# Convert String Decimal to Int
是否有人知道将小数解析为列表框?
编辑Buh Buh代码:
listDecimal.Add(Convert.ToDecimal(textBox1.Text));
textBox1.Clear();
listBox1.Items.Clear();
for (int i = 0; i < listDecimal.Count; i++)
{
listBox1.Items.Add(listDecimal[i]);
}
textBox1.Clear();
listBox1.Items.Clear();
for (int i = 0; i < listDecimal.Count; i++)
{
listBox1.Items.Add(listDecimal[i]);
}
}
private void button2_Click(object sender, EventArgs e)
{
CalculateSumOfList.ServiceReference1.Service1SoapClient client = new CalculateSumOfList.ServiceReference1.Service1SoapClient();
CalculateSumOfList.ServiceReference1.ArrayOfInt arrayOfInt = new CalculateSumOfList.ServiceReference1.ArrayOfInt();
arrayOfInt.AddRange(listDecimal); // error here!
string result = client.CalculateSum(arrayOfInt);
label1.Text = Convert.ToString(result);
}
使用小数而不是Int我现在在我的代码中出现错误
这一行:
arrayOfInt.AddRange(listDecimal);
答案 0 :(得分:2)
你试过吗
listInt.Add(Convert.ToInt32(Math.Floor(Convert.ToDouble(textBox1.Text)));
ToInt64的问题在于它需要很长时间才能使用int。
如果这不起作用,你可以
int index = textBox1.Text.indexOf(".");
int value;
if(index != -1) {
value = Convert.ToInt32(textBox1.Text.substring(0, index));
}
else {
value = Convert.ToInt32(textBox1.Text);
}
listInt.add(value);
获取小数点的位置,然后读入到该点的数字
我假设因为您在解析结束后使用了一个整数列表,并且在解析结束时想要一个int,看起来您想要一个双重所以以下内容应该实现。
List<Double> listDouble = new List<Double>();
listDouble.Add(Convert.ToDouble(textBox1.Text));
答案 1 :(得分:1)
整数是整数。整数没有小数位,所以听起来你可能根本不想使用它们。我已经调整了你的问题,改为使用Decimal类。
List<decimal> listDecimal = new List<decimal>();
listDecimal.Add(Convert.ToDecimal("5.7"));
textBox1.Clear();
listBox1.Items.Clear();
for (int i = 0; i < listDecimal.Count; i++)
{
listBox1.Items.Add(listDecimal[i]);
}