Need help with accepting decimals as input in C#
I have written a program in C# that runs the Pythagorean Theorem. I would love some help on allowing the program to accept decimal points from the user input. This is what I have.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project_2
{
class Program
{
static void Main(string[] args)
{
int sideA = 0;
int sideB = 0;
double sideC = 0;
Console开发者_如何学C.Write("Enter a integer for Side A ");
sideA = Convert.ToInt16(Console.ReadLine());
Console.Write("Enter a integer for Side B ");
sideB = Convert.ToInt16(Console.ReadLine());
sideC = Math.Pow((sideA * sideA + sideB * sideB), .5);
Console.Write("Side C has this length...");
Console.WriteLine(sideC);
Console.ReadLine();
}
}
}
I have been trying to research this by using the Math.Abs and so on only to receive build errors. Help in the write path would be greatly appreciated.
I would recommend using Decimal.TryParse. This pattern is very safe since it traps the exceptions and returns a boolean to determine the success of the parse operation.
http://msdn.microsoft.com/en-us/library/system.decimal.tryparse.aspx
Math.Pow doesnt take in decimal. There is already another question on SO about Math.Pow and decimal. Use double.
static void Main(string[] args)
{
double sideA = 0;
double sideB = 0;
double sideC = 0;
Console.Write("Enter an integer for Side A ");
sideA = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter an integer for Side B ");
sideB = Convert.ToDouble(Console.ReadLine());
sideC = Math.Pow((sideA * sideA + sideB * sideB), .5);
Console.Write("Side C has this length...");
Console.WriteLine(sideC);
Console.ReadLine();
}
static decimal RequestDecimal(string message)
{
decimal result;
do
{
Console.WriteLine(message);
}
while (!decimal.TryParse(Console.ReadLine(), out result));
return result;
}
精彩评论