结果c#中的十进制位置

时间:2013-07-31 08:53:01

标签: c# math datagridview double

我有这个代码来计算datagridview中所有行的2个相乘列的摘要。

private void vypocti_odvody(int price, int vat, int tot_rows2)
    {
        try
        {
            double outVal = 0;
            foreach (DataGridViewRow row in dataGridView1.Rows)

            {
                outVal = outVal + (Convert.ToDouble(row.Cells[price].Value)/100) * Convert.ToDouble(row.Cells[vat].Value) + (Convert.ToDouble(row.Cells[price].Value));
            }

         //   s_ub_celk.Text = (((a / 100) * b) + a).ToString();
            Convert.ToDecimal ( result.Text = outVal.ToString()) ;
        }
        catch (Exception ex)
        {
            MessageBox.Show("Chybové hlášení K3 " + ex.Message.ToString());
        }


    }

如何改善小数位?现在的结果是:123,5484250我想只有2个小数位,结果例如123,55。

对不起,我的英语很差,我希望'小数位'能说出我真正的意思。如果我为更好的理解做了一个例子。

感谢大家的时间,意见和答案。

4 个答案:

答案 0 :(得分:4)

由于您使用DataGridView,您可以设置单元格的格式,如

DataGridView1.Columns[required column index or name].DefaultCellStyle.Format = "N2"

答案 1 :(得分:2)

使用格式字符串转换文本:

result.Text = outVal.ToString("0.00");

有关如何格式化数字的更多方法,请参阅this list。您也可以使用

result.Text = string.Format("{0:0.00}", outVal);

与上面的代码完全相同。

答案 2 :(得分:2)

您可以使用Math.Round(value, digits)

值是您的结果,数字是您想要的小数

答案 3 :(得分:1)

使用System.Globalization.NumberFormatInfo来控制设置。

System.Globalization.NumberFormatInfo numberFormatInfo = new System.Globalization.NumberFormatInfo();           
numberFormatInfo.NumberDecimalDigits = 2;

decimal decimalexample = 123.5484250M;

string decimalasstring = decimalexample.ToString(numberFormatInfo);

问候。