我正在使用这个代码来计算三角形的面积,值为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);
Run Code Online (Sandbox Code Playgroud)
除以2.0或2d或2D
原因:整数除法仅给出整数部分并删除小数部分.
2是整数.2.0是双重价值.
double i = (valueA + valueB + valueC) / 2.0;
Run Code Online (Sandbox Code Playgroud)
要么
double i = (valueA + valueB + valueC) / 2d;
Run Code Online (Sandbox Code Playgroud)
要么
double i = (valueA + valueB + valueC) / 2D;
Run Code Online (Sandbox Code Playgroud)
第二行保持不变
return Math.Round(Math.Sqrt(i * (i - valueA) * (i - valueB) * (i - valueC)),1);
Run Code Online (Sandbox Code Playgroud)