这是我的代码:
string myValue = "0,203";
decimal.TryParse(myValue, NumberStyles.Any, CultureInfo.CurrentCulture, out myValueAsDecimal;
...
myValueAsDecimal is 0.203 now
myValueAsDecimal
是否可能在TryParse
之后具有0,203或decimal
的内部表示形式始终为0.203,并且如果需要0,203则需要格式化GUI输出? 最佳答案
TryParse之后myValueAsDecimal是否有0,203
不,这只是一个数字-它没有文本格式的概念。要考虑使用更简单的类型的另一种方式,请考虑以下两行代码:
int x = 0x100;
int y = 256;
这两个值是否相同?是的,它们代表相同的数字。如果将
x
和y
的值转换为字符串,则默认情况下它们都将以“ 256”结尾-但是如果您请求十六进制表示,它们都可能以“ 100”结尾。区分变量的实际值和文本表示形式很重要。很少有类型(我想不起来)随身携带有关文本表示的信息-例如,可以从多种格式中解析
DateTime
,但没有原始文本格式的“内存” 。它只是一个日期和时间,可以根据任何格式进行格式化。如果您需要保持“十进制数及其最初表示的区域性”的想法,则应为该配对创建自己的类或结构。它不在
decimal
本身中。关于c# - 如何防止小数点。TryParse将“,”转换为“。”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30095391/