﻿ String to Decimal With 2 Decimal Places Always - ITCodar

# String to Decimal With 2 Decimal Places Always

## String to Decimal with 2 decimal places always

`#` is an optional digit when `0` is a mandatory digit

For instance

`` decimal d = 12.3M; // d with exactly 2 digits after decimal point Console.WriteLine(d.ToString("########.00")); // d with at most 2 digits after decimal point  Console.WriteLine(d.ToString("########.##"));``

Outcome:

``12.30   // exactly 2 digits after decimal point: fractional part padded by 012.3    // at most 2 digits after decimal point: one digit - 3 - is enough``

## Convert string to decimal to always have 2 decimal places

`Decimal` is a bit strange type, so, technically, you can do a little (and may be a dirty) trick:

``// This trick will do for Decimal (but not, say, Double) // notice "+ 0.00M"Decimal result = Convert.ToDecimal("25.5", CultureInfo.InvariantCulture) + 0.00M; // 25.50 Console.Write(result);``

But much better approach is formatting (representing) the `Decimal` to 2 digits after the decimal point whenever you want to output it:

``Decimal d = Convert.ToDecimal("25.50", CultureInfo.InvariantCulture);// represent Decimal with 2 digits after decimal pointConsole.Write(d.ToString("F2"));``

## Number to String (Always 2 decimal Place)

try this method

``double i=12.22222;             //first variabledouble j=1.2545;              //second variabledouble h=i*j;                 // multiple first and secondstring s=h.ToString("0.00");  // convert to string and proper format       ``

this methed return

``s="15.33"``

## Convert string to decimal number with 2 decimal places in Java

``litersOfPetrol = Float.parseFloat(df.format(litersOfPetrol));``

There you formatted your float to string as you wanted, but but then that string got transformed again to a float, and then what you printed in stdout was your float that got a standard formatting. Take a look at this code

``import java.text.DecimalFormat;String stringLitersOfPetrol = "123.00";System.out.println("string liters of petrol putting in preferences is "+stringLitersOfPetrol);Float litersOfPetrol=Float.parseFloat(stringLitersOfPetrol);DecimalFormat df = new DecimalFormat("0.00");df.setMaximumFractionDigits(2);stringLitersOfPetrol = df.format(litersOfPetrol);System.out.println("liters of petrol before putting in editor : "+stringLitersOfPetrol);``

And by the way, when you want to use decimals, forget the existence of double and float as others suggested and just use BigDecimal object, it will save you a lot of headache.

## How to parse float with two decimal places in javascript?

You can use toFixed() to do that

``var twoPlacedFloat = parseFloat(yourString).toFixed(2)``

## Two Decimal places using c#

If you want to round the decimal, look at `Math.Round()`