.NET的数学库NMath实用教程——创建复数的几种方法

时光总嘲笑我的痴心妄想 提交于 2019-12-06 01:40:43

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程,有任何建议或提示请在下方评论区留言,以便学习交流。

本节将介绍如何构造FloatComplexDoubleComplex的实例:


从数值创建复数

您可以从表示实部和虚部的一对数值中构造复数对象。如果仅传递单个值则假定它是实部,并且虚部设置为0.0。例如:

  • C#复数代码示例
    var c = new FloatComplex( 1.3, 4.5 );   // 1.3 + 4.5i
    var c2 = new DoubleComplex( 6.5 );    // 6.5 + 0.0i
  • VB复数代码示例
    Dim C As New FloatComplex(1.3, 4.5)   ' 1.3 + 4.5i
    Dim C2 As New DoubleComplex(6.5)      ' 6.5 + 0.0i

静态FromPolar()函数构造具有给定幅度和相位角的复数:

  • C#复数代码示例
    var c = DoubleComplex.FromPolar( 2 * Math.Sqrt(2), Math.PI/4 );
    // c = 2.0 + 2.0i
  • VB复数代码示例
    Dim C As DoubleComplex =
      DoubleComplex.FromPolar(2 * Math.Sqrt(2), Math.PI / 4)
    ' c = 2.0 + 2.0i

从字符串创建复数

您还可以从表单的字符串表示(real,imag)构造复杂的数字类型。括号是可选的,忽略空格。同样,如果只提供一个值,则假定它是真实的部分。例如4.2,-5.1是有效的字符串,而4.2-5.1i不是有效的字符串。

  • C#复数代码示例
    string s = "(1.1, -3.23)"; 
    var c = new DoubleComplex( s );
  • VB复数代码示例
    Dim S As String = "(1.1, -3.23)"
    Dim C As New DoubleComplex(S)

静态Parse()方法执行相同的功能:

  • C#复数代码示例
    string s = "(1.1, -3.23)"; 
    DoubleComplex c = DoubleComplex.Parse( s );
  • VB复数代码示例
    Dim S As String = "(1.1, -3.23)"
    Dim C As DoubleComplex = DoubleComplex.Parse(s)

注意:在解析复数字符串时,不能像在某些财务格式中那样使用括号来表示负数。

相反的,重写的ToString()成员函数返回复数的字符串表示形式:

  • C#复数代码示例
    var c = new FloatComplex( 7.61, -1.2 );
    Console.WriteLine( c.ToString() );  // prints "(7.61,-1.2)"
  • VB复数代码示例
    Dim C As New FloatComplex(7.61, -1.2)
    Console.WriteLine(c.ToString())  ' prints "(7.61,-1.2)"

ToString() 方法的变体也接受标准的.NET数字格式字符串。例如格式字符串“E”表示指数(科学)概念。


隐式转换

复数类的隐式转换运算符如下图所示,箭头表示隐式提升。


更多NMath实用教程敬请关注!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!