试图创建一个从字符串转换为十进制的扩展方法

本文关键字:转换 字符串 十进制 方法 扩展 一个 创建 | 更新日期: 2023-09-27 18:00:06

我正试图想出一种将字符串转换为X个小数位数的全局方法,但我运气不佳。我需要这个来返回一个包含X个小数的小数。

以下是我到目前为止所拥有的,但我不知道如何让它知道可以轻易地除以什么:

public static decimal ToXDecimalPlaces(this object value, int numberofdecimalplaces, decimal defaultValue = 0)
{
  double retval;
  if (double.TryParse(value.ToString(), out retval))
  {
    return (decimal)(retval / 10);
  }
  return defaultValue;
}

所以如果我发送:

value = "12345"
value.ToXDecimalPlaces(2) 

我想回去:

123.45

等等。

retval的划分需要根据小数位数而有所不同。

有什么建议吗?我宁愿不必创建一些扩展方法,或者这就是我应该做的吗?

我应该创建吗:

To1DecimalPlaces
To2DecimalPlaces
To3DecimalPlaces
etc

对于我需要的每一个,继续前进?

试图创建一个从字符串转换为十进制的扩展方法

使用Math.Pow怎么样?

类似的东西

return (decimal)(retval / Math.Pow(10, numberofdecimalplaces));