我正在使用此代码计算三角形的面积,值为2,2和1.当我在口袋计算器中进行计算时,我得到0.97,但在C#中它是0.我猜它有一些东西关于小数舍入,但我已经改变了i和up的最后一个值,但结果仍然是0!我究竟做错了什么?帮助精确!谢谢!
double i = (valueA + valueB + valueC) / 2;
return Math.Round(Math.Sqrt(i * (i - valueA) * (i - valueB) * (i - valueC)),1);
答案 0 :(得分:8)
除以2.0
或2d
或2D
原因:整数除法仅给出整数部分并删除小数部分。
2
是整数。 2.0
是双倍价值。
double i = (valueA + valueB + valueC) / 2.0;
OR
double i = (valueA + valueB + valueC) / 2d;
OR
double i = (valueA + valueB + valueC) / 2D;
第二行保持不变
return Math.Round(Math.Sqrt(i * (i - valueA) * (i - valueB) * (i - valueC)),1);
答案 1 :(得分:2)
请尝试(valueA + valueB + valueC) / 2.0
。