【问题标题】:Keeping trailing zeros保持尾随零
【发布时间】:2011-03-28 12:04:59
【问题描述】:

我想保留尾随零,例如,如果我键入:

round(5.2, 3)

我希望输出是:

5.200

【问题讨论】:

    标签: r math rounding


    【解决方案1】:

    如果这是出于打印目的,sprintf 就是您所追求的:

    > sprintf("%.3f", round(5.2,3))
    [1] "5.200"
    

    有关格式的详细信息,请参阅?sprintf

    【讨论】:

    • @Chase:有没有可能输出一个数值而不是一个字符???
    • @Marco:我认为不,数值没有尾随零。
    • @Marco 5.2 == 5.200 它们是同一个数字,唯一的区别是数字如何表示为字符串
    • @tim_yates:是的,当然是一样的。我想知道的原因是,正如人们所怀疑的那样,是印刷目的。
    • 如果不是用于打印目的,可以使用什么来代替sprintf(...)
    【解决方案2】:

    当你打印出来时,你应该可以做到:

    formatC( round( 5.2, 3 ), format='f', digits=3 )
    

    【讨论】:

    • 谢谢。对不起,我不能接受多个答案。我选择接受前一个,因为 Chase 的声誉得分较低。但是,您的解决方案也非常好。再次感谢您!
    • 打印和非打印都适用的东西怎么样?
    • 我不明白你的意思
    • 有什么可以使用'options()'来改变以保持尾随零?我理解 5.2 == 5.200 但是,就我而言,为了视觉一致性,保持尾随零会很好。由于我使用带有 'parse=T' 的注释,因此由 'formatC' 提供的字符串是不够的。
    猜你喜欢
    • 1970-01-01
    • 2013-03-02
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多