-4

I'm using C#. I am trying to allow the user to input a numerical value (IE: how many do you want?) and then take that value and figure tax and total. I can not figure out how to do this and wondered if anyone could show me? My current script is below:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to Infinate Happiness Ranch.\nPlease enter your order information bellow. ");

            Console.WriteLine();

            Console.WriteLine("Please enter your first and last name:");
            string FirstName = Console.ReadLine();

            Console.WriteLine("Please enter your street address:");
            string Address = Console.ReadLine();

            Console.WriteLine("Please enter your city:");
            string City = Console.ReadLine();

            Console.WriteLine("Please enter your two letter state abbreviation:");
            string StateCode = Console.ReadLine();

            Console.WriteLine("Please enter your zip code:");
            string ZipCode = Console.ReadLine();

            Console.WriteLine("Please enter the number of Tribbles \nyou wish to purchase for $29.99 plus tax");
            string NumberOrdered = Console.ReadLine();

            Console.WriteLine("Invoice \nName {0}", FirstName);
            Console.WriteLine("Address {0}", Address);
            Console.WriteLine("City {0}", City);
            Console.WriteLine("StateCode {0}", StateCode);
            Console.WriteLine("ZipCode {0}", ZipCode);
            Console.WriteLine("NumberOrdered {0}", NumberOrdered);
            // PROGRAM WORKS UNTIL HERE.
            NumberOrdered = m;
            TotalBeforeTax = m * 29.99; //'n' is total b4 tax
            o = n * 0.9;// 'o' is total tax due
            p = o + n; // 'p' is total due

            Console.WriteLine("Your total is {0} {1}", n);
            Console.WriteLine("Your tax is {0}", o);
            Console.WriteLine("Your total charge is {0}", p);
            Console.WriteLine("Thank you for your order");
            Console.WriteLine();

            //Console.WriteLine("Name:" + FirstName);
            Console.Read();    
        }
    }
}
4

4 回答 4

0

您应该使用解析字符串

int ordered = int.Parse(NumberOrdered);

并继续用这个整数计算。

于 2013-10-14T17:09:20.850 回答
0

因为用户正在以字符串形式输入信息,所以您应该将有序的数字转换为整数。此外,为了保留小数点,您需要将数字存储为双精度数。

int numOrdered = Convert.ToInt32(NumberOrdered);
double TotalBeforeTax = numOrdered * 29.99; 

double beforeTax = TotalBeforeTax * 0.9;
double afterTax = beforeTax + TotalBeforeTax;

Console.WriteLine("Your total is {0}", TotalBeforeTax);
Console.WriteLine("Your tax is {0}", beforeTax);
Console.WriteLine("Your total charge is {0}", afterTax);
Console.WriteLine("Thank you for your order");
于 2013-10-14T17:11:09.087 回答
0

你忘了声明一些变量和赋值一些值​​​。

尝试这个:

static float m;
static float n;
static float o;
static float p;
static float TotalBeforeTax;
static void Main(string[] args)
{
    Console.WriteLine("Welcome to  Infinate Happiness Ranch.\nPlease enter your order information bellow. ");
    Console.WriteLine();

    Console.WriteLine("Please enter your first and last name:");
    string FirstName = Console.ReadLine();

    Console.WriteLine("Please enter your street address:");
    string Address = Console.ReadLine();

    Console.WriteLine("Please enter your city:");
    string City = Console.ReadLine();

    Console.WriteLine("Please enter your two letter state abreviation:");
    string StateCode = Console.ReadLine();

    Console.WriteLine("Please enter your zip code:");
    string ZipCode = Console.ReadLine();

    Console.WriteLine("Please enter the number of Tribbles \nyou wish to purchase for $29.99 plus tax");
    string NumberOrdered = Console.ReadLine();

    Console.WriteLine("Invoice \nName {0}", FirstName);
    Console.WriteLine("Address {0}", Address);
    Console.WriteLine("City {0}", City);
    Console.WriteLine("StateCode {0}", StateCode);
    Console.WriteLine("ZipCode {0}", ZipCode);
    Console.WriteLine("NumberOrdered {0}", NumberOrdered);
    //PROGRAM WORKS UNTIL HERE ? HELP ? ? ? ? ?
    //NumberOrdered = m;
    m = float.Parse(NumberOrdered);
    TotalBeforeTax = m * 29.99f; //'n' is total b4 tax
    n = TotalBeforeTax;
    o = n * 0.9f;//'o' is total tax due
    p = o + n; //'p' is total due

    Console.WriteLine("Your total is {0}", n);
    Console.WriteLine("Your tax is {0}", o);
    Console.WriteLine("Your total charge is {0}", p);
    Console.WriteLine("Thank you for your order");
    Console.WriteLine();
    Console.Read();
}

希望这可以帮助 !

于 2013-10-14T17:26:19.697 回答
-3

只是一点建议,您可以在 Console.WriteLine() 中包含非字符串变量,例如:

Console.WriteLine("Your tax is " + o);

这是大多数专业开发人员所做的。不需要复杂的 C/C++ 风格的解析。

此外,您似乎没有声明变量 o 和 p。尝试这个:

双 o = Convert.toDouble(n * 0.9);

或者

双 o = (双)(n * 0.9);

于 2013-10-14T17:08:43.320 回答