接上文。
至于BUG是啥,待会说现在不合适
先搞个四则运算出来。上一篇说了用BigDemical的b1.add(d2);的格式,再加上百度上搜了一下复数四则的公式,直接show代码吧(看源码才是硬道理)


其实是可以不用创建double a与b的,但为了可读性,加一个又何妨?
再重写一个Object的equals()方法。


当然作为一个计算数的一个类,那必须要整一个toString()方法。不然别人看到System.out.println()方法中是一串内存地址,心情一定是崩溃的(toSting方法就是在这时使用的)。与判断一个字符串是否为复数的格式一样,每种情况都要写一遍。


那么,这个复数类基本就写好了。接下来写个Main类测试下吧!


答案与我的卡西欧计算器基本一致。并且只用了7ms就完成了创建、运算、输出的操作,可喜可贺!
但如果我作一下...计算(+i)*(+i)呢?


此时问题又来了:如果我要把这个答案实例化呢?
或者说:我们先前的把字符串拆分为复数的代码似乎不能执行如此大的数。给大家看一下实例化"1.0+1.0E27i"的问题:我要打27个0。这能忍吗?这不能,只好加一个鉴别科学计数法的代码了。思路是把字符串用E拆开,随后再拆两个数,这就与先前一样了。

把以上代码插入在构造方法的if中。

好了,给大家看一下科学计数法的成果吧!


版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/24634.html