I wrote a code for which
if 23E+20 is the input then output should be 230000000(20 zeros)
if 4.456E-14 is the input then 4.456000(14 zeros) should be the output
But its not working properly. Please let me know where I did error. Thank You.
using System;
class test
{
public static void Main()
{
Console.WriteLine("Enter double");
String ext =Console.ReadLine();
if(ext.IndexOf("E")!=-1)
{
int i=ext.IndexOf("E");
ext = ext.Substring(0, i);
for (int j = 0; j < int.Parse(ext.Substring(i + 1, ext.Length - (i + 1))); j++)
ext = ext + "0";
Console.WriteLine(ext);
}
}

2 answers
i don't know if 4.456E-14 is right coz it should be in the left but here is the code.
Console.WriteLine("Enter double");
String ext =Console.ReadLine();
int i=ext.IndexOf("E");
if (i != -1)
{
i++;
int exp = Math.Abs(int.Parse(ext.Substring(i, ext.Length - i)));
ext = ext.Substring(0, i-1);
for (int j = 0; j < exp; j++)
ext += "0";
}
Console.WriteLine(ext);
Console.Read();
answered one year ago by:
1556
This problem is more difficult than it looks.
Whilst muster's solution deals OK with integer mantissas with non-negative exponents, it doesn't deal with negative exponents and also doesn't deal with non-integral mantissas such as 4.456E-14.
The following does deal with them as long as you don't need more than 99 digits after the decimal point, if there is one. Rather than generating the additional zeros 'manually', it makes use of .NET's standard numeric format "F":
answered one year ago by:
17279