Oli*_*ham 1 c# visual-studio-2010 absolute-value
我想找到一个数字的delta值.
我试着用这个.我用过Abs功能.它适用于整数.
但是当我尝试做以下事情时,
var gh = Math.Abs(3.223 - 6.243);
Run Code Online (Sandbox Code Playgroud)
它返回3.0200000000000005.但我期待 3.02.
为什么?怎么弄3.02?
因为您使用的是float/double值,这些值本质上不是100%精确的(这是由于它们的二进制表示).例如,你甚至不能精确地0.1使用浮点数,因为它的二进制表示是周期性的1.(1001).这是一篇关于此事的非常完整的文章:每个计算机科学家应该知道的关于浮点运算的内容
Tl; dr解决方案decimal用于精确的十进制算术运算
var gh = Math.Abs(3.223m - 6.243m);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4938 次 |
| 最近记录: |