troubleshooting Question

Atof Equivalent in C#

Avatar of AlHal2
AlHal2Flag for United Kingdom of Great Britain and Northern Ireland asked on
C#
2 Comments1 Solution724 ViewsLast Modified:
Is it possible to convert this code to C#?


	int pos=0,p=0;
	double v1,expo,res;

	p=value.find("e+");
	
	if(value.find("e+")!=-1 ||value.find("e-")!=-1)
	{
		pos=value.find("e");
		if(atof(value.substr(0,pos).c_str()))
		{
		v1=StringToDouble(value.substr(0,pos));
		expo=StringToDouble(value.substr(pos+1,(value.length()-(pos+1))));
		res=pow(10,expo)*v1;
		return DoubleToString(res);


		}
	}

I saw this online, but wasn't sure how to get the Takewhile function to work.
https://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhile(v=vs.100).aspx

float myAtof(string myString)
{
    Predicate<char> testChar = c => c == '.' || 
                                    c == '-' || 
                                    c == '+' || 
                                    char.IsDigit(c);

    myString = new string(myString.Trim().TakeWhile(testChar).ToArray());

    if (myString.Length > 0)
    {
        float rvl;

        // accounts for bogus strings of valid chars, e.g. ".-":
        if (float.TryParse(myString, out rvl))
        {
            return rvl;
        }
    }

    return 0;
}
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 2 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 2 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros