该说的4楼基本都说了,小结下:
1. N无法提升精度,而MachinePrecision精度优先级默认最低。
2. 强制升精度可以用SetPrecision或者Rationalize。不过更合理的做法是在计算的一开始就把精度处理好。大型数值计算函数一般都会有个WorkingPrecision选项的。
3. General::munfl 警告很多时候不一定是个问题,很多时候我们就是希望Exp[-800]这样的式子近似为0,当然这样具体问题具体判断。
4. 其实Mathematica早期版本在计算Exp[800.]这样的式子时是会自动升精度的,但是这个设计有它的缺点(某些场合严重拖慢计算速度),所以后来取消了。想了解更多可以去Stackexchange搜搜关于这个警告的问题,链接不贴了,怕被吞。