我在转换数字方面遇到了问题。
我有:
private decimal amount { get; set; }
当我在文本框中写入值10.15
时,转化效果很好,它会将我转换为10,15
但是当我写10
或35
时,它不是10,00
或35,00
,而是它的价值相同10
和35
我该如何转换它?
谢谢
答案 0 :(得分:2)
decimal
只是一个数字 - 它没有格式。
当你显示(或解析)它时,你指定一个数字的格式 - 如果你只是查看调试器中的值,隐式地转换为字符串(例如设置{ {1}}控件的属性),或在未指定格式的情况下调用.Text
,然后您隐式使用系统的默认格式(包括任何文化细节)。对于.ToString
,默认格式为decimal
(常规),以尽可能紧凑的形式显示数字。因此,如果小数值没有小数部分,则不显示小数位。
如果要在显示字符串时指定特定格式,请使用G
或string.Format
.ToString
或使用您想要的任何custom formatting。
请注意,某些UI控件(可能包括您的txtValue.Text = amount.ToString("N2");
)具有"格式"用于指定显示值时使用的格式的属性。在这种情况下,您可以在设计器或代码隐藏中将格式设置为TextBox.UIDecimal
。