我想说明一些数值算法的稳定性。我想根据通常的规则使用Mathematica来舍入浮点数,例如:
myRound[3/80.]=0.038
如果我将精度指定为2位数。
另一个
myRound[89/47.]=1.89
所以给定一个精确数字,如何编写myRound
函数?请帮忙。非常感谢。
答案 0 :(得分:3)
您应该查看NumberForm
。例如:
NumberForm[89.0/47.0, 3]
返回1.89。
在我看来,如果你真的想要说明问题,你应该查看ComputerArithmetic
包。它有很好的记录,所以我会留下它。
答案 1 :(得分:3)
我不确定这是你想要的:
In[34]:= customRound[x_Real] :=
Round[x, 10^Round[RealExponent[x]]*0.01]
In[35]:= customRound[3/80.]
Out[35]= 0.038
In[36]:= customRound[89/47.]
该功能实际上改变了数字,而不仅仅是改变它的显示方式。