博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET的数学库NMath实用教程——创建复数的几种方法
阅读量:6952 次
发布时间:2019-06-27

本文共 1554 字,大约阅读时间需要 5 分钟。

hot3.png

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

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

f4f74aa6b2974d4cab1263be31f2c86f636831652004785197.png

从数值创建复数

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

  • C#复数代码示例
    var c = new FloatComplex( 1.3, 4.5 );   // 1.3 + 4.5ivar c2 = new DoubleComplex( 6.5 );    // 6.5 + 0.0i
  • VB复数代码示例
    Dim C As New FloatComplex(1.3, 4.5)   ' 1.3 + 4.5iDim 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”表示指数(科学)概念。


隐式转换

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

3e57f34fb1f44aa5a2cde20ff5ba2a25636831654819512419.jpg

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

 

转载于:https://my.oschina.net/u/4031063/blog/3001755

你可能感兴趣的文章
搭建kubernetes时容易遇到的问题
查看>>
centos7安装python3 以及tab补全功能
查看>>
nodejs与javascript中的aes加密
查看>>
栈桥-断桥
查看>>
JS编程建议——72:惰性载入函数
查看>>
使用Sklearn进行数据挖掘
查看>>
互联网企业安全高级指南3.7 如何看待SDL
查看>>
Vmware 安装 Fedora 18 注意事项
查看>>
SpringBoot多跨域请求的支持(JSONP)
查看>>
moell/mojito - 基于 Laravel、Vue、ELement 构建的基础后台系统扩展
查看>>
JavaScript链式调用,对象属性与遍历,this指向,callee和caller
查看>>
会扫地炒菜,将来机器人当钟点工
查看>>
Linux 进程间通信的六种机制
查看>>
一篇就让你懂线程池原理
查看>>
MySql事务和锁
查看>>
iOS面试题06-其他
查看>>
区块链软件公司:供应链高本钱的运用区块链技能是否值得?
查看>>
[译]应用内搜索功能实现 Android TV应用程序手册教程十三
查看>>
ListenalbeFuture的使用总结
查看>>
用canvas画一个刮刮卡
查看>>