我希望能够处理列表框中的小数位数
本文关键字:小数 处理 列表 我希望 | 更新日期: 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]);
}