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

Ero*_*ocM 0 c# extension-methods

我试图想出一种将字符串转换为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;
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我发送它:

value = "12345"
value.ToXDecimalPlaces(2) 
Run Code Online (Sandbox Code Playgroud)

我想回来:

123.45
Run Code Online (Sandbox Code Playgroud)

等等

retval的划分需要有所不同,等待最终的数量.

有什么建议?我不想创建一些扩展方法,或者我应该做什么?

我应该创建:

To1DecimalPlaces
To2DecimalPlaces
To3DecimalPlaces
etc
Run Code Online (Sandbox Code Playgroud)

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

Adr*_*der 5

使用Math.Pow怎么

就像是

return (decimal)(retval / Math.Pow(10, numberofdecimalplaces));
Run Code Online (Sandbox Code Playgroud)