Math.Sin(...)返回值的类型为double(双精度浮点数)。在.net中,double是按IEEE754 标准进行编码的,这是一个国际标准。问题的原因就是由于double双精度浮点数编码规则所导致精度损失,意思是:double浮点数往往只能近似于精确值。在这里, sin(0)的精确值是0,但用double来表示sin计算结果为1.22460635382238E-16(一个非常接近精确值0的近似数)。在.net 中,double的精度可以保证位小数点后15位。