【问题标题】:0.5 displays as 0.5 even when I use round(0.5,2)0.5 显示为 0.5 即使我使用 round(0.5,2)
【发布时间】:2011-06-01 01:24:17
【问题描述】:

我有一个像 0.5 这样的数字,我想保留两位数以使数字成为 0.50。虽然最后一位是零,所以它总是不能出现。

我用过round(0.5,2),但是不行

【问题讨论】:

    标签: r zero digit


    【解决方案1】:

    您可以通过以下方式作弊:

    y <- 0.5
    formatC(round(y,2),2,format="f")
    

    请注意,这会更改为字符。因此,它仅用于显示目的。

    【讨论】:

      【解决方案2】:

      另一种选择是使用sprintf

      y <- 0.5
      sprintf("%0.2f", round(y, 2))
      
      [1] "0.50"
      

      编辑:根据 Wojciech Sobala 的说法(下)

      sprintf("%0.2f", y)
      

      应该足够了。

      sprintf("%0.2f", 0.478)
      [1] "0.48"
      

      【讨论】:

      • sprintf("%0.2f",..) 是什么意思?为什么是 %0.2f?
      • ?sprintf。 m.n:用句点分隔的两个数字,分别表示字段宽度(m)和精度(n)。
      • 您可以简化为 sprintf("%0.2f",y)。 @user471448 f - 定点,m.n - 字段宽度(m),精度(n)(您可以在 R 帮助中阅读此内容,试试 ?sprintf)
      • @Wojciech 谢谢 - 我不知道 sprintf 会舍入还是截断,所以我玩得很安全。
      猜你喜欢
      • 2019-02-07
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 2021-03-18
      • 2018-06-30
      • 2019-06-22
      • 2021-11-29
      相关资源
      最近更新 更多