Area of a Circle
Description:
Complete the function circleArea
so that it will return the area of a circle with the given radius
. Round the returned number to two decimal places (except for Haskell). If the radius is not positive or not a number, return false
.
Example:
Kata.CalculateAreaOfCircle("-123"); //throws ArgumentException
Kata.CalculateAreaOfCircle("0"); //throws ArgumentException
Kata.CalculateAreaOfCircle("43.2673"); //return 5881.25
Kata.CalculateAreaOfCircle("68"); //return 14526.72
Kata.CalculateAreaOfCircle("number"); //throws ArgumentException
using System; public static class Kata { public static double CalculateAreaOfCircle(string radius) { //Solve! try { //if (radius.IndexOf(',') != -1) if (radius.Contains(",")) { throw new ArgumentException(); } double r = Convert.ToDouble(radius); if (r <= 0) { throw new ArgumentException(); } else { return Convert.ToDouble((Math.PI * Math.Pow(r, 2)).ToString("f2")); } } catch { throw new ArgumentException(); } } }
其他人的解法:
使用Math.Round以及out参数 double的TryParse
using System; public static class Kata { public static double CalculateAreaOfCircle(string radius) { double number; if (radius.Contains(",") || !double.TryParse(radius, out number) || double.TryParse(radius, out number) && number < 1) { throw new ArgumentException(); } return Math.Round(number * number * Math.PI, 2); } }