2

我正在使用此代码来计算三角形的面积,其值为 2、2 和 1。当我在袖珍计算器中进行计算时,我得到 0.97,但在 C# 中它是 0。我想这与它有关小数的四舍五入,但我已经从 i 和向上更改了最后一个值,但结果仍然是 0!我究竟做错了什么?帮忙打赏!谢谢!

double i = (valueA + valueB + valueC) / 2;
return Math.Round(Math.Sqrt(i * (i - valueA) * (i - valueB) * (i - valueC)),1);
4

2 回答 2

8

除以2.0or2d2D

原因:整数除法只给出整数部分,去掉小数部分。

2是整数。2.0是双重价值。

double i = (valueA + valueB + valueC) / 2.0;

或者

double i = (valueA + valueB + valueC) / 2d; 

或者

double i = (valueA + valueB + valueC) / 2D;

第二行保持不变

return Math.Round(Math.Sqrt(i * (i - valueA) * (i - valueB) * (i - valueC)),1);
于 2012-06-08T11:24:16.963 回答
2

请尝试(valueA + valueB + valueC) / 2.0

于 2012-06-08T11:24:36.120 回答