C# 在主类中将公共类字符串转换为双精度

C# 在主类中将公共类字符串转换为双精度,c#,C#,我正在尝试将我在类中创建的字符串转换为double,以便在算术中使用它,但是我遇到了错误,我尝试了以下方法: /* Calling class to use number for conversion double LocalCentToInch = Convert.ToDouble(CentI); double YourAnswer = MyConvert * LocalCentToInch; */ //Ignore these lines ju

我正在尝试将我在类中创建的字符串转换为double,以便在算术中使用它,但是我遇到了错误,我尝试了以下方法:

/* Calling class to use number for conversion
      double LocalCentToInch = Convert.ToDouble(CentI);
      double YourAnswer = MyConvert * LocalCentToInch;
      */
      //Ignore these lines just testing type converison and failing
      //Console.WriteLine(CentI);
      //Console.WriteLine(CentI.ToDouble());
      double LocalCentToInch;
      LocalCentToInch = Convert.ToInt32(CentI);
      Console.WriteLine(LocalCentToInch);
我从一个名为convert one的类调用,它如下所示:

/////////////////////centimetres to inches///////////////////////////////
public class ConvertOne 
{
  public ConvertOne()
  {
    Centtoinch = "0.3937008";
  }

  public ConvertOne(string centtoinch)
  {                                   //make new string with var data
    Centtoinch = centtoinch;
  }

  public string Centtoinch   { get; }


  public override string ToString()
  {
    return Centtoinch;
  }


}
///////////////////////end of centimetres to inches////////////////////////////
主要的方法是在数学上,现在看起来是这样的:

  double YourAnswer = MyConvert * 0.3937008;
  Console.WriteLine("\nYour answer is:");
  Console.WriteLine(YourAnswer);
但我不想使用0.39377008,我想从它的类中调用这个字符串,并将其转换为double,以便在“YourAnswer”部分中使用

正如你所看到的,我尝试了不同的方法,尽管我不确定下一步应该尝试什么

我得到的错误是:

Unhandled Exception:
System.InvalidCastException: Specified cast is not valid.
  at System.Convert.ToInt32 (System.Object value) [0x00003] in <71d8ad678db34313b7f718a414dfcb25>:0 
  at testConverter.Main () [0x000dc] in <93d359b0b3204d6482ac66dd3e4b0858>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidCastException: Specified cast is not valid.
  at System.Convert.ToInt32 (System.Object value) [0x00003] in <71d8ad678db34313b7f718a414dfcb25>:0 
  at testConverter.Main () [0x000dc] in <93d359b0b3204d6482ac66dd3e4b0858>:0 
exit status 1
未处理的异常:
System.InvalidCastException:指定的强制转换无效。
在System.Convert.ToInt32(System.Object值)[0x00003]处输入:0
在testConverter.Main()[0x000dc]处:0
[错误]致命的未处理异常:System.InvalidCastException:指定的强制转换无效。
在System.Convert.ToInt32(System.Object值)[0x00003]处输入:0
在testConverter.Main()[0x000dc]处:0
退出状态1

这是如何将字符串转换为双精度字符串

var str = "1.23";
var dble = Convert.ToDouble(str);


事实上,Convert.ToDouble,simple调用第二个方法-请参见

,如果您描述了实际问题,它会有所帮助。但是,我应该注意,在上面的代码中,您正在将字符串转换为Int32(int),而不是double。使用
Convert.ToDouble()
有什么问题吗?您能否发布具体错误及其发生的位置?“我犯了错误”并没有告诉我们多少。另外,您是否可以删除代码示例中注释掉的部分,并将其限制为演示问题所需的代码?这是非常混乱的书面。请看一看,根据我所看到的,最好将CtotoBoin加倍,当它需要字符串时将它转换为字符串。为什么使用字符串来存储转换因子,而不是它需要的两倍?
var str = "1.23";
var dble = Double.Parse(str);