查看以下C#代码:
decimal value1 = 1234M;
decimal value2 = 1234.00M;
Console.WriteLine(value1 == value2); // True
Console.WriteLine(value1); // 1234
Console.WriteLine(value2); // 1234.00
value1
和value2
之间有什么区别导致它们的格式不同(小数位数不同)?
它们是相同的值,所以我希望它们的格式是相同的。 value2
以某种方式存储我创建它的两个小数位吗?如果是,我怎么能看到并改变它?
答案 0 :(得分:1)
小数内部存储为一种浮点数,因此它存储尾数和指数。在您的情况下,两个数字的存储方式不同,大致如下:
decimal value1 = 1234M;
// mantissa = 1234, exponent = 0
decimal value2 = 1234.00M;
// mantissa = 123400, exponent = 2
输出时,看起来.NET会让你获得“整个”尾数,并根据指数定位一个小数点。
答案 1 :(得分:1)