【问题标题】:Converting a decimal data type value to a formatted string将十进制数据类型值转换为格式化字符串
【发布时间】:2015-08-21 06:10:52
【问题描述】:

我想将Label22.TextLabel21.Text 的结果转换为带两位小数的数字。尝试了多种变体

sda = new SqlDataAdapter(@"SELECT fname, SUM([debit]/1.2) AS [D], SUM([credit]/1.2) AS [C] FROM detail GROUP BY fname", con);
DataSet ds = new DataSet();
sda.Fill(ds);
DataRow dr = ds.Tables[0].Select("fname = '0092632'").FirstOrDefault();

if (dr != null)
{
    Label22.Text = dr["D"].ToString();
    Label21.Text = dr["C"].ToString();
}

【问题讨论】:

  • 目前你得到了什么??
  • Convert.ToDecimal() ?
  • 小数点后 5 位的长数字,例如 1009.65891
  • 致维沙尔。我得到了长达 5 位小数的长数字,例如 1009.65891

标签: c# sql-server type-conversion


【解决方案1】:

试试这个

Label22.Text = string.Format("{0:N2}", Convert.ToDecimal(dr["D"].ToString()));
Label21.Text = string.Format("{0:N2}", Convert.ToDecimal(dr["C"].ToString()));

也试试这个

Label22.Text = string.Format("{0:0.00}", dr["D"].ToString());
Label21.Text = string.Format("{0:0.00}", dr["C"].ToString());

【讨论】:

  • 嗨普拉文。怕是没用。试着摆弄它,但没有乐趣
  • 你得到的输出是什么?调试和观看
  • 愿意,但我该在哪里做呢?有没有我需要按下的特殊按钮。正如你所收集的,对这个很陌生
【解决方案2】:

您也可以在查询中执行此操作:

SELECT 
    fname, 
    CONVERT(DECIMAL(20,2), SUM([debit]/1.2)) AS [D], 
    CONVERT(DECIMAL(20,2), SUM([credit]/1.2)) AS [C] 
FROM 
    detail 
GROUP BY 
    fname

【讨论】:

  • 我喜欢这个。不知道你可以在查询中做到这一点。
  • @callasda 这是在查询中;)。
猜你喜欢
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 2012-02-03
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
相关资源
最近更新 更多