首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止打印大量的零(不是科学符号)

停止打印大量的零(不是科学符号)
EN

Stack Overflow用户
提问于 2012-12-29 09:27:56
回答 2查看 873关注 0票数 11

我试图实现的是,所有打印的数字显示在最大的7数字。下面是我想要印的东西的例子:

0.000000 (而实际数字为0.000000000029481.) 0.299180 (而实际数字为0.299180291884922.)

我通过使用options(scipen=99999)options(digits=6)成功地使用了后一类数字。但是,前一个例子总是打印大量的零,后面跟着五个非零的数字。如何阻止这种情况的发生并实现我想要的结果?我也不想要科学符号。

我希望这适用于所有印刷数字在任何情况下。例如,如果我有一些矩阵,叫它A__,然后打印这个矩阵,我希望每个元素都是6-7位数。我希望这对每个上下文中的每一个打印都是自动的;就像使用options(digits=6)options(scipen=99999)使每个上下文都自动化一样。

EN

回答 2

Stack Overflow用户

发布于 2013-01-05 14:09:50

可以为要打印的类型定义新的打印方法。例如,如果所有的数字都是双倍,则可以创建

代码语言:javascript
复制
print.double=function(x){sprintf("%.6f", x)}

现在,当您打印双(或双倍向量)时,函数print.double()将被调用,而不是print.default()

根据需要打印的类型,您可能必须创建类似的函数print.integer()print.complex()等。

要返回默认的打印方法,只需删除函数print.double()

票数 12
EN

Stack Overflow用户

发布于 2012-12-29 11:23:03

你们所有的数字都< 1吗?您可以尝试一个简单的sprintf( "%.6f", x )。否则,您可以尝试根据数字数将东西包装到sprintf;其他详细信息请查看?sprintf

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14080359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档