我使用以下函数将数字转换为字符串以用于显示目的(不要使用科学记数法,不要使用尾随点,按指定舍入):
(* Show Number. Convert to string w/ no trailing dot. Round to the nearest r. *)
Unprotect[Round]; Round[x_,0] := x; Protect[Round];
shn[x_, r_:0] := StringReplace[
ToString@NumberForm[Round[N@x,r], ExponentFunction->(Null&)], re@"\\.$"->""]
(请注意,这re
是 的别名RegularExpression
。)
多年来,这一直很好地为我服务。但有时我不想指定要四舍五入的位数,而是想指定一些有效数字。例如,123.456 应显示为 123.5,但 0.00123456 应显示为 0.001235。
为了得到真正的幻想,我可能想在小数点之前和之后指定有效数字。例如,我可能希望 .789 显示为 0.8,但 789.0 显示为 789 而不是 800。
对于这类事情,您是否有一个方便的实用功能,或者对我上面的功能进行概括的建议?
相关:抑制尾随“。” 在 Mathematica 的数值输出中
更新:我试着在这里问这个问题的一般版本:
https ://stackoverflow.com/questions/5627185/displaying-numbers-to-non-technical-users