In this code i got the above error in lines i commented.
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;
}
}
Whats is the problem? Thanks!
There are a couple of ways to convert a double value to a long value in Java e.g. you can simply cast a double value to long or you can wrap a double value into a Double object and call it's longValue() method, or using Math. round() method to round floating-point value to the nearest integer.
round() accepts a double value and converts it into the nearest long value by adding 0.5 and removing its decimal points. Syntax: long Math. round(Double double1);
To convert a specified value to a double-precision floating-point number, use Convert. ToDouble() method. long[] val = { 340, -200}; Now convert it to Double.
The Math.Pow
method returns a double
, not a long
so you will need to change your code to account for this:
x = (long)(u % Math.Pow(10, m));
This code will cast the double
result from Math.Pow
and assign that value to x
. Keep in mind that you will lose all the precision providided by decimal
(which is a floating-point type and can represent decimal values). Casting to long
will truncate everything after the decimal point.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With