147| 4
|
[项目分享] 真正的计算器 高精度计算单独篇 |
前言: 这个帖子满满干货,不在评论区吱一声还好意思那文件?()这次带来的高精度可不是一般的。系统的计算机输出的是科学寄数法,但同样的算式我做的高精度可以直接输出十进制的数。(这次和之前的不一样,不需要手动转换) 上才艺: 这里面的那个小数点不精准的bug貌似只有这个算式会出现。 最后一个最高位有0的bug正式版(我发的版本)修复了。除法还没做。打算除法既输出小数(循环小数也可以输出!),又可以输出对应的分数。所以鼓励一下把。 加减: 这个办法是我在进行排除废料()的时候想到的。首先,这是2个变量,表示了2个数字。 我们把他们数位统一。先看整数部分。14和11450。那么我们知道,数字前面加上0,大小不变。我们就加上: 然后是小数部分。我们也知道,小数末尾加上0大小也不变,所以我们加上: 然后如果我们是算加法,就把两个列表的每一项相加,放入一边,减法就是相减。 加: sum列表就是结果啦。这里的比较特殊,直接就是结果。来看看不一样的: 那么我们就要进位!! 这就正常了。所以你们发现了吗,其实高精度计算是按照我们手算的办法来计算的,乘法如此,加减如此。这就是编程里的模拟法(扯远了) 这个也很特殊: 我们需要把多余的0去掉才是平常看到的结果。至此,加法ok了。 减: (n1-n2 还有一项是-4.忘写了)look,这里有负数,我们需要退位。 这就好了。如果开头或结尾有0就去掉。至此,完毕! 代码: 进位 退位 主体1/5 主体2/5 主体3/5 主体4/5 主体5/5 附件: 计算器.zip |
参与人数 2 | 创造力 +6 | 收起 理由 |
---|---|---|
dingding960 | + 5 | GOOD |
凉皮周 | + 1 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed