How to Convert Int to Float with 2 Decimal Places in C#?

Do you need to know how to convert int to float with 2 decimal places in C#? Check out this complete tutorial. I have explained here different methods in C# to convert int to float with 2 decimal places.

To convert an integer to a float with two decimal places in C#, you can use the ToString method with a format specifier. For example:

int myInt = 123;
float myFloat = myInt;
string myFloatWithTwoDecimals = myFloat.ToString("0.00");

This code snippet converts the integer myInt to a float and then formats it as a string with two decimal places.

Convert Int to Float with 2 Decimal Places in C#

Here are 6 different methods in C# convert int to float with 2 decimal places with examples and complete code.

1. Using float.Parse() and String.Format()

One of the simplest ways to convert an integer to a float with two decimal places in C# is to first convert the integer to a string and then parse it as a float.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        float myFloat = float.Parse(myInt.ToString());
        string myFloatWithTwoDecimals = String.Format("{0:0.00}", myFloat);
        Console.WriteLine(myFloatWithTwoDecimals); // Output: 123.00
    }
}

In this method, myInt.ToString() converts the integer to a string. float.Parse() then converts the string back into a float. Finally, String.Format() formats the float to two decimal places.

You can see the output in the screenshot below:

Convert Int to Float with 2 Decimal Places in C#

2. Using Division and Math.Round()

Another way to achieve this is by dividing the integer by 1.0 to get a float and then rounding it to two decimal places using Math.Round() in C#.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        float myFloat = myInt / 1.0f;
        float myFloatWithTwoDecimals = (float)Math.Round(myFloat, 2);
        Console.WriteLine(myFloatWithTwoDecimals); // Output: 123.00
    }
}

Here, dividing by 1.0f explicitly converts the integer to a float. Math.Round() is then used to round the number to two decimal places.

3. Using String Interpolation

C# 6 introduced string interpolation, which provides a more readable and convenient syntax to create formatted strings.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        float myFloat = myInt / 1.0f;
        string myFloatWithTwoDecimals = $"{myFloat:0.00}";
        Console.WriteLine(myFloatWithTwoDecimals); // Output: 123.00
    }
}

The $ before the string starts the string interpolation, and the {myFloat:0.00} inside the string is the interpolation expression that formats the float.

4. Using Convert Class

The Convert class provides a method to convert various base data types to other base data types in C#. After converting to a float, you can then format it to two decimal places.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        float myFloat = Convert.ToSingle(myInt);
        string myFloatWithTwoDecimals = myFloat.ToString("0.00");
        Console.WriteLine(myFloatWithTwoDecimals); // Output: 123.00
    }
}

In this snippet, Convert.ToSingle(myInt) converts the integer to a float in C#. Then, ToString("0.00") formats the float to two decimal places.

5. Using Custom Extension Method

You can also create a custom extension method to encapsulate the conversion logic, making your code cleaner and reusable.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        float myFloatWithTwoDecimals = myInt.ToFloatWithTwoDecimals();
        Console.WriteLine(myFloatWithTwoDecimals); // Output: 123.00
    }
}

public static class ExtensionMethods
{
    public static float ToFloatWithTwoDecimals(this int value)
    {
        return (float)Math.Round(value / 1.0f, 2);
    }
}

Here, ToFloatWithTwoDecimals is an extension method that converts the integer to a floating-point number and rounds it to two decimal places.

6. Using decimal for More Precision

If you need more precision, you can use the decimal type instead of float. The decimal type has a larger range and precision which is ideal for financial and monetary calculations.

using System;

class Program
{
    static void Main()
    {
        int myInt = 123;
        decimal myDecimal = myInt;
        decimal myDecimalWithTwoDecimals = Math.Round(myDecimal, 2);
        Console.WriteLine(myDecimalWithTwoDecimals); // Output: 123.00
    }
}

In this example, Math.Round() is used to round the decimal to two decimal places in C#.

Conclusion

Converting an integer to a float with two decimal places in C# can be done in several ways like String.Format(), the newer string interpolation, or the precision of the decimal type, etc.

In this C# tutorial, I have explained different methods to convert int to float with 2 decimal places in C#:

  1. Using float.Parse() and String.Format()
  2. Using Division and Math.Round()
  3. Using String Interpolation
  4. Using Convert Class
  5. Using Custom Extension Method
  6. Using decimal for More Precision

You may also like: