C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Note: DisplayPercentage accepts a double that is a ratio. The {0:0.0%} indicates a percentage with 1 digit past the decimal place.
Note 2: The second DisplayPercentage accepts 2 parameters and then passes the ratio of them to the other method. It casts to double.
CastsAlso: GetPercentageString accepts a double containing a ratio and returns a percentage string using ToString().
ToStringC# program that calculates per cents
using System;
class Program
{
static void Main()
{
// Display percentage of visits that resulted in purchases.
int purchases = 10;
int visitors = 120;
DisplayPercentage((double)purchases / visitors);
// Display 50 percent with overloaded method.
DisplayPercentage(1, 2);
// Write percentage string of nine tenths.
Console.WriteLine(GetPercentageString((double)9 / 10));
}
/// <summary>
/// This method writes the percentage form of a double to the console.
/// </summary>
static void DisplayPercentage(double ratio)
{
string percentage = string.Format("Percentage is {0:0.0%}", ratio);
Console.WriteLine(percentage);
}
/// <summary>
/// This method writes the percentage of the top number to the bottom number.
/// </summary>
static void DisplayPercentage(int top, int bottom)
{
DisplayPercentage((double)top / bottom);
}
/// <summary>
/// This method returns the percentage-formatted string.
/// </summary>
static string GetPercentageString(double ratio)
{
return ratio.ToString("0.0%");
}
}
Output
Percentage is 8.3%
Percentage is 50.0%
90.0%
Cast: The double must be assigned to a value cast to double. If you omit the cast, your value will be rounded and probably useless.
Tip: When casting to double, you do not need to surround the entire expression with parentheses.
DivideInfo: Math.Floor rounds down to the nearest integer. Math.Ceiling rounds up to the nearest integer.
Math.FloorMath.CeilingMath.RoundC# program that converts ratios
using System;
class Program
{
static void Main()
{
// We want to have 92.9% from these two numbers.
int valid = 92;
int total = 99;
// First multiply top by 100 then divide.
double percent = (double)(valid * 100) / total; // <-- Use cast
// This is the percent number.
Console.WriteLine(percent);
Console.WriteLine(Math.Floor(percent));
Console.WriteLine(Math.Ceiling(percent));
Console.WriteLine(Math.Round(percent, 1));
}
}
Output
92.9292929292929
92
93
92.9
Tip: With modulo division, we can run an operation every N times. This has uses in many programs.