我尝试在c#中将小数格式设置为0:0.0,尝试此代码
string nv = textBox7.Text.Trim().Replace(',', '.');
res = Convert.ToDecimal(nv, new CultureInfo("en-GB"));
Run Code Online (Sandbox Code Playgroud)
但res总是用逗号显示结果,也试过用
new CultureInfo("en-GB")
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在并提前感谢你.
Vin*_*rgh 11
正如其他评论和答案所示,您首先需要了解一些基础知识.我可能会说你已经知道的一些事情,但请耐心等待:
textBox7.Text包含一个string,而不是一个decimal.decimal进行计算,你必须转换它(我想你已经有了这个)res是小数,因此每当您想要查看其值时,SOMETHING会将其转换为a string.Console当你将鼠标悬停在调试器上时,是将它写入调试器还是调试器.该转换将使用您当前的区域设置.这就是你总是看到一个逗号的原因.a)标准格式.示例:
Console.WriteLine(res.toString("F2"));
这将在逗号后面的123456格式为123456:123456.00
b)自定义格式.示例:
Console.WriteLine(res.toString("[##-##-##]"));
这将输出123456,如[12-34-56]
c)CultureInfo.示例:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
这将在比利时输出1234.56:用逗号1234,56
顺便提一下,我认为en-GB也输出到逗号:-)
d)结合.发疯!两个都做!示例:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
格式123456到123456,00!
res是一个decimal,而不是一个字符串。所以它不能有格式。小数是没有关联格式的纯数学数字。decimal该格式仅在将 a 转换为 a时才存在string。
您可以用来res.ToString(CultureInfo.InvariantCulture)生成用作小数点分隔符的字符串.。
| 归档时间: |
|
| 查看次数: |
12949 次 |
| 最近记录: |