C# 使用c在sql中将货币转换为字符串格式#
我使用c#中的查询从SQL表中检索结果,在转换货币时坚持使用C# 使用c在sql中将货币转换为字符串格式#,c#,sql,C#,Sql,我使用c#中的查询从SQL表中检索结果,在转换货币时坚持使用format.string。我无法转换为带零的字符串格式。我希望PCN收费为7个字符(例如100个字符为0010000),法庭费用为15个字符(例如01500) 错误就在这里 "(bat.PCN_Charge) *100 ".ToString().PadLeft(7, '0') + // value output I get is 10000.0000( where PCN CHARGE is 100) ",([Court Fee]
format.string
。我无法转换为带零的字符串格式。我希望PCN收费为7个字符(例如100个字符为0010000),法庭费用为15个字符(例如01500)
错误就在这里
"(bat.PCN_Charge) *100 ".ToString().PadLeft(7, '0') + // value output I get is 10000.0000( where PCN CHARGE is 100)
",([Court Fee])*100 ".ToString().PadLeft(5, '0') + // value I get is 1500
(如果法庭费用是15)在我看来,如果您能够,您应该利用C#中的字符串格式设置字符串格式,然后离开数据库返回数据。这对你有用吗 如果是这样,您可以使用:
String.Format("{0:0000000}", pcnCharge);
String.Format("{0:00000}", courtFee);
我在这里使用了“多个0”格式来准确说明它的输出。您还可以使用其他数字格式,这些格式可以参考,例如D
,其中#是要显示的位数,包括前导零(例如D5
)
使用:
给出7个数字。首先,你不应该做tiat 这是一个数字,按此抓取。像这样储存。在向用户显示的位置设置格式。不在SQL查询中。任何形式的字符串操作在SQL历史上和当前都是一个弱点,如果将其拉入C#,在SQL中就没有理由这样做 现在,如果您真的需要这样做,请使用SQL Server format函数,该函数自2012版起就存在(并且您没有说您使用的是哪个版本,因此我假设您没有使用过时的技术) 此功能进入.NET framework并使用这些格式字符串,因此您可以轻松做到这一点。然后,它在SQL中以某种方式如下所示:
SELECT FORMAT([pcnCharge],'0000000') .... (I leave the rest to you)
而不是:
.ToString().PadLeft(7, '0')
.ToString().PadLeft(5, '0')
尝试:
而不是:
.ToString().PadLeft(7, '0')
.ToString().PadLeft(5, '0')
尝试:
.ToString(D)
转换为字符串十进制D7
将确保它是7位数字,因此10000将是0010000。我相信它会在前面加上零。除5位数字外,D5
也相同
有关ToString格式,请参阅。如果使用MSSQL 2012,则可以尝试使用函数执行任务
DECLARE @d INT = '10';
SELECT FORMAT ( @d * 100, 'D7', 'en-US' )
为什么不返回值,并使用C#使用
字符串格式化值。格式化?是的。这很尴尬。您已经使用了C#,而SQL以糟糕的字符串操作而闻名——因此,为什么不在演示文稿中按原样(一个数字)进行格式化呢。
.ToString().PadLeft(5, '0')
.ToString(D5)
DECLARE @d INT = '10';
SELECT FORMAT ( @d * 100, 'D7', 'en-US' )