繁体   English   中英

如何将字符串转换为带有 2 个小数位的十进制数?

[英]How to convert a string to decimal with 2 decimal places?

我正在尝试将字符串转换为小数,但最后两个值是小数点。 例如:“001150”被转换成11.50。

我在搜索中找到的所有内容都会将字符串转换为小数,但字符串已经有小数点了。 我可能必须创建一个函数来从字符串中提取小数点,但想先看看是否还有其他想法。

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

首先检查字符串是否为数字,然后除以 100,然后格式化字符串:

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

如果您需要没有格式化的十进制类型:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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