我在C#中使用Windows表单应用程序计算税金并添加总计。点击按钮获得总数后,应计算税额。如果没有十进制数字它正在工作,但是当它必须计算十进制数时给出错误“输入字符串格式不正确”
TotTax.Text = (Convert.ToInt32(textboxnettotal.Text) * (0.12)).ToString();
textBox_GrnTot.Text = (Convert.ToInt32(textboxnettotal.Text) + Convert.ToInt32(TotTax.Text)).ToString();
这是我的代码
当我在数据网格视图十进制数字的c列中计算总数时,它没有给我十进制值但是我在整个文本框中得到平衡完全无答案。
int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[5].Value);
}
textboxnettotal.Text = sum.ToString();
RowCount++;
答案 0 :(得分:3)
使用Convert.ToDecimal
代替Convert.ToInt32
,以确保您的sum
被声明为decimal
。
答案 1 :(得分:1)
int
的 Convert.ToInt32
不支持小数。请改用Decimal
数据类型。它允许小数,并且没有float
或double
的奇怪舍入行为。
答案 2 :(得分:1)
您可以将Tryparse()
方法与InvariantCulture
decimal myvalue;
if (decimal.TryParse(dataGridView1.Rows[i].Cells[5].Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out myvalue))
{
sum += myvalue;
}
完整代码:
decimal myvalue;
decimal sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
if (decimal.TryParse(dataGridView1.Rows[i].Cells[5].Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out myvalue))
{
sum += myvalue;
}
}
textboxnettotal.Text = sum.ToString();
RowCount++;
答案 3 :(得分:0)
double sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum += Convert.Todouble(dataGridView1.Rows[i].Cells[5].Value);
}
textboxnettotal.Text = sum.ToString();
RowCount++;