C#Math.Tan错误

时间:2018-06-25 14:20:03

标签: c#

以下代码产生的结果为零:

double x = 1/2 + Math.Tan(0) + 1/2;

或任何其他包含Math.Tan和表达式中其他项目的代码。编译器似乎只是计算Tan值,而忽略表达式的其余部分。为什么会这样?

2 个答案:

答案 0 :(得分:1)

将其分成几部分,并记住整数除法将得到一个整数,并且其分数部分将从结果中截断。

double x = 1/2 + Math.Tan(0) + 1/2;

double x = (1/2) + Math.Tan(0) + (1/2);

double x = (0) + 0 + (0);

double x = 0;

答案 1 :(得分:0)

表达式1/2的值为0,因为两个操作数都是整数,因此除法运算是整数除法,向下舍入到最接近的整数。因此1/2 + Math.Tan(0) + 1/2等同于0 + 0 + 0