【发布时间】:2015-12-09 13:05:17
【问题描述】:
在 C# 中有没有一种方法可以返回带小数的数字的平方根。 每次我使用 Math.Sqrt() 它都不会返回小数。
我的代码:
Int32 a = Convert.ToInt32(input1.Text);
Int32 b = Convert.ToInt32(input2.Text);
//a*a + b*b = c*c
Int32 a2 = a * a;
Int32 b2 = b * b;
Int32 c2 = a2 + b2;
Int32 c = Convert.ToInt32(Math.Sqrt(c2));
output.Text = Convert.ToString(c);
【问题讨论】:
-
Math.Sqrt方法返回一个双精度数,因此肯定包含结果的小数部分。你是怎么用的? -
十进制不是桌面硬件的能力。您需要将其从浮点数或双精度数转换为十进制数。但是一些特殊的 cpu 架构可能具有定点算法的能力,在这种情况下您需要实现自己的 sqrt。
-
这个问题在这里有几个答案:stackoverflow.com/questions/4124189/…
-
您显然将
Math.Sqrt()的结果转换为Int32- 一个整数,即没有小数。 -
因为您的问题值得他们提出。你有 Int32 c = Convert.ToInt32(Math.Sqrt(c2));并询问我的小数点发生了什么需要反对票。
标签: c# floating-point type-conversion implicit-conversion math.sqrt