c#中一个复数求模程序的异常处理的疑问

问题描述

c#中一个复数求模程序的异常处理的疑问

最近在用c#写一个复数类,其中要用到一个复数求模的运算。在网上找到了一些示例代码,但是不知道为什么要这么写。我自己的代码和示例代码都贴出来:
public double Abs2()
{
double result = Math.Sqrt(this.real * this.real + this.imag * this.imag);
return result;
}
public double Abs()
{
double x = Math.Abs(this.real);
double y = Math.Abs(this.imag);
if (this.real == 0)
{
return y;
}
if (this.imag == 0)
{
return x;
}
if (x > y)
{
return x * Math.Sqrt(1 + (y / x) * (y / x));
}
else
{
return y * Math.Sqrt(1 + (x / y) * (x / y));
}
}
其中的abs2是我自己写的。abs是网上找的。问一个朋友,他说是异常处理,怕越界。但是看了下double的取值范围,完全没觉得有这个必要。另外实际跑了一下,两者的结果都是一样的。

解决方案

Abs那样的写法也有问题
if (this.real == 0)
浮点数不能直接用等号比较。因为浮点数存在误差。

时间: 2024-10-26 20:14:28

c#中一个复数求模程序的异常处理的疑问的相关文章

ASP.NET中一个相片上传程序

问题描述 代码如下:protectedvoidButton2_Click1(objectsender,EventArgse){//图片上传按钮if(FileUpload1.HasFile){stringpictureName=FileUpload1.PostedFile.FileName.ToString();FileInfopictureFile=newFileInfo(pictureName);stringwebfilepath=Server.MapPath("photo/"+pi

一个用于J2EE应用程序的异常处理框架

在大多数Java项目中,大部分代码都是样板代码.异常处理就属于此类代码.即使业务逻辑只有3到4行代码,用于异常处理的代码也要占10到20行.本文将讨论如何让异常处理保持简单和直观,使开发人员可以专心于开发业务逻辑,而不是把时间浪费在编写异常处理的样板代码上.本文还将说明用于在J2EE环境中创建和处理异常的基础知识和指导原则,并提出了一些可以使用异常解决的业务问题.本文将使用Struts框架作为表示实现,但该方法适用于任何表示实现. 使用checked和unchecked异常的场景 您是否曾经想过

求一个通过c#窗体程序将.csv文件导入到sql2008中的程序

问题描述 望大神们予以指点,想通过c#前端将csv表导入到sql2008中,初学者,想求一个直接运行的程序,慢慢去研究,网上的代码都不能运行,万分的感谢: 解决方案 解决方案二:C#解析csv其实,这好看csv格式是否复杂,你找个能解析的然后根据自己的csv格式调试下不得了解析出来就能存储解决方案三:你可以直接把它当txt读取也可以用OLEDB

磁盘-新手学习C语言文件,问题已经在程序中备注,求解答!

问题描述 新手学习C语言文件,问题已经在程序中备注,求解答! //怎样向文件读写字符 #include #include int main() { FILE * fp; char ch,filename[10]: printf("请输入所用的文件名:"); scanf("%s",filename); if((fp = fopen(filename,"w")) == NULL)//为什么这里的filename没有双引号引起来: { printf(&

myeclipse-MyEclipse中编写的一个完整的jsp程序包括后台文件的运行流程

问题描述 MyEclipse中编写的一个完整的jsp程序包括后台文件的运行流程 一个程序在MyEclipse中的运行流程,也就是先加载那个文件,后运行那个文件,求指点 解决方案 你不如找一本web开发教程的书看看 解决方案二: 去学一下jsp就知道了,,很快的,,

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi

怎么在c语言程序中一个读入函数

问题描述 怎么在c语言程序中一个读入函数 在c语言中如何读入一个函数 ,并且运用这个函数? 我在编写科学计算器的定积分运算的时候遇到了需要用户自己输入一个函数然后才 能计算该函数的定积分的问题.请问1怎么才能读入一个函数,并利用这个函数呢? 解决方案 http://download.csdn.net/detail/lpw32682770/1587368 解决方案二: 读入函数是什么意思,编译器自带的库里的函数只要引入对应的头文件就可以使用了,如果是封装在DLL里的函数要先获得函数的地址 解决方案

求android中一个定时提醒功能的实现思路!

问题描述 求android中一个定时提醒功能的实现思路! 比如在一个记事本中,我写了一项任务,想加一个定时提醒功能,类似闹钟一样,但又和闹钟不一样,闹钟只能定今天的时间,我想定任意一天的任意时刻的一个提醒功能,跪求实现思路!!! 解决方案 http://blog.csdn.net/wanglang3081/article/details/7456684 解决方案二: 这一个service在后台运行,实时检查时间 解决方案三: Timer定时机制. 解决方案四: 如果要实现任意天任意时刻,那就必须

异步-求一个php+jQuery小程序。

问题描述 求一个php+jQuery小程序. php+jQuery实现输入用户id,异步输出数据库中该id的用户信息.最简单的就好! 解决方案 http://jcyzone.iteye.com/blog/1733668 解决方案二: http://www.jb51.net/article/20733.htmhttp://phpway.blog.163.com/blog/static/212112005201301153512311/ 解决方案三: 那不是很容易么..得到id,,发送ajax请求,