c#为什么不能用decimal而只能用double?

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:25:53
代码如下:
Dictionary<double, string> dicBefore = new Dictionary<double, string>(); dicBefore.Add(0, "到时");
dicBefore.Add(0.25, "15分钟前");
dicBefore.Add(0.5, "半个小时前");
为什么不能这样声明Dictionary<decimal, string> dicBefore = new Dictionary<decimal, string>(); ??

因为精度问题,所以不能兼容!
decimal 精度:28 到 29 位有效位
double 精度: 15 到 16 位
个人认为,应该是时间的精度最大不能超过16位的样子,所以会导致声明错误!

在内存中所占字节数不同,所有有效位数也不一样.

把书看清楚 啊!!!