我尝试在c#中将小数格式设为0:0.0 试过这段代码
string nv = textBox7.Text.Trim().Replace(',', '.');
res = Convert.ToDecimal(nv, new CultureInfo("en-GB"));
但是res总是用逗号显示结果,也尝试使用
new CultureInfo("en-GB")
但问题仍然存在 并提前感谢你。
答案 0 :(得分:11)
正如其他评论和答案所示,您首先要了解一些基础知识。我可能会说一些你已经知道的事情,但请耐心等待:
textBox7.Text
包含string
,而不是decimal
。decimal
进行计算,你必须转换它(我想你已经到了这里)res
是小数,因此每当您想要查看其值时,SOMETHING会将其转换为string
。当你将鼠标悬停在Console
或调试器上时,是否将它写入Console.WriteLine(res.toString("F2"));
。该转换将使用您当前的区域设置。 这是您总能看到逗号的原因。 a)Standard Format。例如:
Console.WriteLine(res.toString("[##-##-##]"));
这将使用逗号后面的2个数字格式化123456:123456.00
b)Custom Format。例如:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
这将输出123456到类似[12-34-56]
c)CultureInfo。例如:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
这将输出1234.56,如比利时:逗号1234,56
顺便说一下,我认为en-GB也输出到逗号: - )
d)Combine。发疯!两个都做!例如:
{{1}}
格式123456到123456,00!
答案 1 :(得分:2)
res
是decimal
,不是字符串。所以它不能有格式。小数是纯数学数字,没有相关格式。格式仅在您将decimal
转换为string
时才会出现。
您可以使用res.ToString(CultureInfo.InvariantCulture)
生成使用.
作为小数分隔符的字符串。
答案 2 :(得分:0)
这将为您提供没有逗号的十进制数字,例如“15000.00”:
FormatNumber(nv, , , , 0)