我这里有一些问题,我不知道如何以好的方式解决。例如,我想使用 BaseForm[1/3, 3]
。但是,除非我输入 BaseForm[1/3.,3]
,否则这不会达到我的预期。给定有理数形式的数据,如何将其转换为实数形式?我尝试使用Apply
,它不起作用。 (很奇怪,呃?对我来说,Apply 总是可以用来更改标题。)
对于这个具体问题,我可以做类似 BaseForm[1/3*1.,3]
的事情,但它确实不是很好。
感谢您的帮助。
最佳答案
BaseForm
将 10 基数的有理数转换为您想要的任何基数的有理数...因此它可以满足您的期望。
In[1]:= BaseForm[1/3,3]
Out[1]//BaseForm= Subscript[1, 3]/Subscript[10, 3]
正如您所指出的,给它一个实数可以这样做:
In[2]:= BaseForm[1/3.,3]
Out[2]//BaseForm= Subscript[0.1, 3]
最安全的改变方法是定义你自己的 baseForm
,它与 BaseForm
相同,除了给定有理数时:
baseForm[r_Rational,b_]:=BaseForm[N[r],b]
然后
In[3]:= baseForm[1/3,3]
Out[3]//BaseForm= Subscript[0.1, 3]
不太安全的方法(因为你不知道它还会破坏什么)是重新定义BaseForm
Unprotect[BaseForm];
BaseForm[r_Rational, b_] := BaseForm[N[r], b]
Protect[BaseForm];
然后正常使用。
关于wolfram-mathematica - 如何在 Mathematica 中将有理数转化为实数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603003/