我尝试在 c# 中将小数格式化为 0:0.0 尝试了这段代码
string nv = textBox7.Text.Trim().Replace(',', '.');
res = Convert.ToDecimal(nv, new CultureInfo("en-GB"));
但 res 总是用逗号显示结果,也尝试过
new CultureInfo("en-GB")
但问题仍然存在并提前感谢您。
正如其他评论和答案所暗示的那样,您首先需要了解一些基础知识。我可能会说一些你已经知道的事情,但请耐心等待:
textBox7.Text
包含一个string
,而不是一个decimal
。decimal
for 计算,你必须转换它(我认为你已经做到了这一点)res
是小数,所以每当您想查看它的值时,SOMETHING 会将其转换为string
. Console
当您将鼠标悬停在它上面时,无论是您将其写入还是您的调试器。该转换将使用您当前的区域设置。这就是为什么你总是看到逗号。a)标准格式。示例:
Console.WriteLine(res.toString("F2"));
这将格式化 123456,逗号后有 2 个数字:123456.00
b)自定义格式。示例:
Console.WriteLine(res.toString("[##-##-##]"));
这将输出 123456 到类似 [12-34-56]
c)文化信息。示例:
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
,而不是一个字符串。所以它不能有格式。小数是没有关联格式的纯数学数字。该格式仅在您将 a 转换decimal
为 a时才存在string
。
您可以使用res.ToString(CultureInfo.InvariantCulture)
来生成.
用作小数分隔符的字符串。
这将为您提供没有逗号的小数点,例如“15000.00”:
FormatNumber(nv, , , , 0)