2017-05-18 27 views
0

私はthisをよく読んでいました。小数点以下1桁以上の数字を印刷

num <- 42

42.0として番号を印刷したいとします。 "42.0"(文字)ではありません。

format(num, nsmall = 1) 

をしかし、これはまだ文字列としてフォーマットし、私はas.numericにネストしようとした場合、私は私の小数点を失う:

私は使用することができます。

numが小数点以下1桁の数値であることを確認するにはどうすればよいですか?

+1

印刷方法を再定義する必要があります。これはばかげている(難しい)。結果を提示するまで心配してはいけないことのひとつです。すべての文字列を 'format'や' sprintf'を使って文字列に変換するだけです。 – alistaire

+0

フィードバックいただきありがとうございます。実際には、2番目のモジュールがこの形式で要求するハッカーランクの挑戦「10日間の統計」です。整数から小数点以下1桁までの数値結果です。 Hackerrankでは、rを含む任意の言語を選択できます。しかし、私はこの解決策がrでは不可能だと思っています。まったく同じ問題を抱えているrを使ってディスカッション掲示板の誰かに気付きました。ああ... ... –

+0

私はそれをチェックし、それは文字列でうまくいく。 'sprintf'アプローチは以下のように動作します。 – alistaire

答えて

1

あなたが使用する小数点以下の数値を丸めるために探している場合:。 round(x, digits = 1) これは、あなたが番号を印刷するために探している場合は、

でこの番号を使用し、それ以降のロジックのために動作します、それは常に文字列になります。私の好みの方法はsprintf("%.1f",x)です。

+0

ありがとうございます。round()を使用すると、小数点以下の桁のない整数が表示されます。 42.0ではなく42。 sprintf()を使用した2番目の提案は文字列になります。私は私が求めていることは可能だとは思わない。私がこれを求めている理由について私のコメントを参照してください。ありがとうございました... –

関連する問題