我希望能够处理列表框中的小数位数

本文关键字:小数 处理 列表 我希望 | 更新日期: 2023-09-27 18:26:59

我希望能够处理列表框中的小数位数。

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#将字符串十进制转换为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); 

我希望能够处理列表框中的小数位数

你试过吗

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,所以您似乎想要一个double,因此以下内容应该可以实现这一点。

List<Double> listDouble = new List<Double>();
listDouble.Add(Convert.ToDouble(textBox1.Text));

整数是一个整数。整数没有小数点,所以听起来你可能根本不想使用它们。我已将你的问题改为使用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]); 
}