最近做项目的时候碰到的这个问题,起初我也很迷惑,询问同事之后,一下点醒我。
问题描述
需求是,函数的参数接受input框中的值,我在input框中输入了1e18的数,这个时候函数是可以正常接受这个参数进行运行的。
可是,如果我是实现将这个input框中的值保存下来,事先说明,这个时候保存的值是小数,之后需要乘1e18,就是这样,我将这样处理之后的数传到了函数的参数中进行处理,但是控制太却报了BigNumber的错误,告诉我overflow了。
然后第一种情况我也是输入了10^18的数,也是直接传给函数的参数的,为什么就可以正常运行呢?
解决办法
之后同事叫我把第二种情况处理的数据转换成字符串,也就是toString一下,结果就可以正常运行函数了。
如果各位也碰到了类似的问题的话, 可以不妨一试。
写在最后
虽然我也才是刚刚入行,但是也给些我从前端前辈那里听来的建议吧,
1.不管有自己有什么想法,有任何的可能性,都要自己先尝试过去,如果觉得所有情况的都尝试过去了,实在解决不了了的话,再去问别人。
2.善用搜索引擎。程序员就多用Google吧,你公司肯定能上Google,实在不行自己想办法。 3.就算到了不得不问别人的时候,一定一定要将自己的问题给描述清楚,自己哪里不清楚?是哪个功能实现不了吗?那这个功能实现到什么部分了?是否有将一个大功能划分成一个个小功能?你觉得自己的问题出在哪里?往往这些都是自己需要考虑的。
4.问别人的时候,尽量一针见血,废话说少一些。
这些话即想帮助刚入行的新人(虽然我现在也是新人),也是写给自己看的,希望自己可以一直在前端的道路上走下去,如果有小伙伴想一起交流学习经验可以私信我。