Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试创建扩展方法以从字符串转换为十进制_C#_Extension Methods - Fatal编程技术网

C# 尝试创建扩展方法以从字符串转换为十进制

C# 尝试创建扩展方法以从字符串转换为十进制,c#,extension-methods,C#,Extension Methods,我正试图想出一种将字符串转换为小数点后X位数的全局方法,但我运气不好。我需要这个来返回一个小数点和X个小数点 到目前为止,我已经掌握了以下信息,但我不知道如何让它知道如何轻松地除以: public static decimal ToXDecimalPlaces(this object value, int numberofdecimalplaces, decimal defaultValue = 0) { double retval; if (double.TryParse(value.

我正试图想出一种将字符串转换为小数点后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
等等

检索的划分需要根据decimalplace的数量而有所不同

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

我是否应该创建:

To1DecimalPlaces
To2DecimalPlaces
To3DecimalPlaces
etc
对于我需要的每一个,我都会继续前进。

如何使用

差不多

return (decimal)(retval / Math.Pow(10, numberofdecimalplaces));
使用如何

差不多

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

您应该使用
此字符串值
,因为您需要字符串值的扩展名。您应该使用
此字符串值
,因为您需要字符串值的扩展名。