【发布时间】:2021-10-19 17:54:33
【问题描述】:
例如,我有这样的代码:
double a = 68.24;
double b = 0.01;
double c = a - b;
c 等于 68.22999999999999。假设我不能更改a、b 和c 的类型(它应该 是double)。但我可以这样做:
double a = 68.24;
double b = 0.01;
decimal _c = (decimal) a - (decimal) b;
double c = (double)_c;
现在c 是68.23,这是我需要的。
但是如果a 和b 的值不同,我会失去从decimal _c 转换的c 的精度吗?
更广泛地说,当double 失去精度时?因为,调试器中的a 和b 是精确的(或者至少是它所显示的),如果我将它们转换为decimal,它们也是精确的。但是对它们的操作不知何故会产生不精确的价值。
【问题讨论】:
标签: c# .net type-conversion double decimal