![](/img/trans.png)
[英]How to format a number into comma only without decimal point but already round into non decimal point using C#
[英]Format a decimal without comma
我尝试在 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
进行计算,你必须转换它(我认为你已经做到了这一点)res
是一个十进制数,因此无论何时您想查看其值,SOMETHING 都会将其转换为string
。 当您将鼠标悬停在它上面时,无论是将其写入Console
还是调试器。 该转换将使用您当前的区域设置。 这就是为什么你总是看到一个逗号。 a) 标准格式。 例子:
Console.WriteLine(res.toString("F2"));
这将用逗号后的 2 个数字格式化 123456: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
,而不是一个字符串。 所以它不能有格式。 小数是纯数学数字,没有相关格式。 该格式仅在您将decimal
转换为string
时才存在。
您可以使用res.ToString(CultureInfo.InvariantCulture)
生成使用.
作为小数点分隔符。
这将为您提供没有逗号的十进制数字,例如“15000.00”:
FormatNumber(nv, , , , 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.