2017-02-10 14 views
-2

HTML:(データ取得)必要に応じて小数点を表示するにはどうすればいいですか?

New hourly rate: <input type="number" name="rate" /> 

Iはrateを格納するために2つの方法を試みました。

Result.erb

rate= params[:rate].to_f # this works .But always show one decimal points ,like 90.5 

rate= params[:rate] # String can't be coerced into Float --error 

私は23.2、45、必要なときにそれは34.5のように、小数点を示したい、33

改善する方法は?

+0

Rubyコードのコメントに実際に '//'を使用していますか? :) –

+0

@Andrey Deinekoいいえ、私はコードをコメントする方法を知らない。 – Monchhichi

+0

あなたのために質問を編集しました:) –

答えて

1

まずは統一されていることが良いものです(to_f変換方法)。

しかし、あなたは(floatまたは整数は小数点の有無に依存)、それは別の型に変換したい場合は次のように行うことができます:

:書くことができ

# check if params[:rate] converted to Float equals to converted to Integer 
rate = if params[:rate].to_f == params[:rate].to_i 
     params[:rate].to_i # Return integer if yes 
     else 
     params[:rate].to_f # Return float otherwise 
     end 

三項演算子を使用してショート

rate = params[:rate].to_f == params[:rate].to_i ? params[:rate].to_i : params[:rate].to_f 

params[:rate] = '2.2' 
rate = params[:rate].to_f == params[:rate].to_i ? params[:rate].to_i : params[:rate].to_f 
#=> 2.2 
params[:rate] = '2' 
rate = params[:rate].to_f == params[:rate].to_i ? params[:rate].to_i : params[:rate].to_f 
#=> 2 
+0

'rate = params [:rate] .to_f == params [:rate] .to_i? params [:rate] .to_i:params [:rate] .to_f'この文の構造を説明することはできますか?この短い形式は分かりません – Monchhichi

関連する問題