gpt4 book ai didi

c# - 无法将类型 'double' 隐式转换为 'long'

转载 作者:可可西里 更新时间:2023-11-01 08:02:46 24 4
gpt4 key购买 nike

在这段代码中,我在评论的行中遇到了上述错误。

public double bigzarb(long u, long v)
{
double n;
long x;
long y;
long w;
long z;
string[] i = textBox7.Text.Split(',');
long[] nums = new long[i.Length];
for (int counter = 0; counter < i.Length; counter++)
{
nums[counter] = Convert.ToInt32(i[counter]);
}

u = nums[0];
int firstdigits = Convert.ToInt32(Math.Floor(Math.Log10(u) + 1));
v = nums[1];
int seconddigits = Convert.ToInt32(Math.Floor(Math.Log10(v) + 1));
if (firstdigits >= seconddigits)
{
n = firstdigits;

}
else
{
n = seconddigits;
}
if (u == 0 || v == 0)
{
MessageBox.Show("the Multiply is 0");
}

int intn = Convert.ToInt32(n);
if (intn <= 3)
{
long uv = u * v;
string struv = uv.ToString();
MessageBox.Show(struv);
return uv;
}
else
{
int m =Convert.ToInt32(Math.Floor(n / 2));

x = u % Math.Pow(10, m); // here
y = u / Math.Pow(10, m); // here
w = v % Math.Pow(10, m); // here
z = v / Math.Pow(10, m); // here

long result = bigzarb(x, w) * Math.Pow(10, m) + (bigzarb(x, w) + bigzarb(w, y)) * Math.Pow(10, m) + bigzarb(y, z);///here
textBox1.Text = result.ToString();
return result;
}
}

问题是什么?谢谢!

最佳答案

Math.Pow 方法返回一个double,而不是一个long,因此您需要更改您的代码以说明这一点:

x = (long)(u % Math.Pow(10, m));

此代码将从 Math.Pow 转换为 double 结果并将该值分配给 x。请记住,您将失去 decimal(它是一种浮点类型,可以表示十进制值)提供的所有精度。转换为 long 将截断小数点后的所有内容。

关于c# - 无法将类型 'double' 隐式转换为 'long',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com