简体   繁体   中英

How to convert a string to decimal with 2 decimal places?

I'm trying to convert a string to a decimal but have the last two values be the decimal point. Example: "001150" be converted into 11.50.

Everything I've found in my search will convert strings to a decimal but the string already has the decimal point. I might have to create a function that will make the decimal point out of the string but wanted to see if there are any other ideas first.

    string input = "001150";
    string convertedString = string.Format(
        "{0:N2}",
        double.Parse(input)/100.0
    );

First check if string is a number, then divide by 100 and then format string:

public string ConvertTwoDecimals(string toConvert)
  {
    Double convertedValue;
    var isNumber = Double.TryParse(toConvert, out convertedValue);
    return isNumber ? $"{(convertedValue / 100):N2}" : $"{ 0:N2}";
  }

if you need a decimal type without formatted:

public decimal ConvertToDecimal(string toConvert)
{
  Decimal convertedValue;
  var isNumber = Decimal.TryParse(toConvert, out convertedValue);
  return isNumber ? convertedValue/100 : 0;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM