较大的数如何做加减



  • 20位数之间的加减法无效果,乘除法就不说了,数很大会有效率问题,但加减法总的有吧,科学计数要有套处理办法啊,又或者我没找到在哪?



  • 有效果啊,不就是单纯的有效果吗😧
    undefined
    undefined
    结果如下:
    undefined
    undefined
    我想你遇到的情况是下面这种,你可以看到跟上面的相比前面的数只加了1:
    undefined
    undefined
    但是结果却是跟上面一样的
    undefined
    undefined
    那1去哪了呢,应该是数据的精度问题,询问了一下朋友,了解到JS里面大数都是采用的双精度浮点数计算的
    所以从下面这个角度看,超过这个精度的部分应该都被略去了,那么1丢失了也就能理解了。
    undefined
    undefined
    我搜了一下关于JS数据精度的问题,发现这是一个普遍现象,如果你想了解,我随便找了其中一篇:
    https://www.cnblogs.com/snandy/p/4943138.html
    所以结论上去看的话,其实不是没效果,而是你的位数太大了,程序常规的通用计算识别不到超过精度的部分(不超过的部分依旧能识别到),从查找的问题及其结果来看,这是个程序员都要专门写特殊的计算来修正的问题,从泛用性上讲,大位数运算且精度要求到这么小位的,应该是很低概率的情况,虽然我不太清楚你要做到这么高位数又要保持那么高精度的理由,但是一般游戏设计上应该也会通过加上K、M等单位把运算位数进一步缩短,从各方面降低设计成本的做法才对。
    如果真的有这个需求,你可以沿着这个思路去查找一下程序员是如何解决这个问题的,然后模仿他们的思路试试吧。
    以上是一点个人拙见,希望能帮到你吧。



  • @欧拉欧拉 我遇到的确实是大位数加小位数没反应,还以为没效果


Log in to reply