Ruby初心者です。
簡単な比較を行いたいんですが、エラーが出てしまいます。
ファイルに ex. ruby_test.rb
0
12.3243
32
112.233
0.33123
とあり、このファイルを読み込んで比較しようとしています。
以下のコードで比較しようとしました。
-----------------------------------------------------------
fp = open("c:/ruby_test.txt")
aaa = Array.new
while line2 = fp.gets
line2.chomp!
bbb = line2.split(/\t/)
aaa << bbb[1]
if ( bbb[2] < 1.301029996 ) then ※11行目
print "aaa\n"
elsif ( bbb[2] < 8.164943898 ) then
print "bbb\n"
elsif ( bbb[2] >= 8.164943898 ) then
print "ccc\n"
end
end
fp.close
--------------------------------------------
実行すると ( ※ **** はファイル名 )
C:/ruby/*******.rb:11:in'<': comparison of String with Float failed (Argument Error)
というエラーが出ます。
比較する
bbb[2] < 1.301029996 を bbb[2] < "1.301029996" すれば
動きますが、これでは文字列としての比較になってしまいますよね??
Floatは数字として比較するにはどうしたらよいのでしょうか?
どなたか宜しくお願いします。
No.2ベストアンサー
- 回答日時:
>C:/ruby/*******.rb:11:in'<': comparison of String with Float failed (Argument Error)
これで何を云わんとしているかというと、
ファイルから読み出してきた文字列を元に作られた文字列である
bbb[2] と、数値である1.301029996 とを '<' を使って比較することができない
ということです。
Perlのように、このようなときに文字列→数値とか数値→文字列の
自動的な変換をRubyはしませんので、スクリプトを書く人が自分で書いてやらなければいけません。
if ( bbb[2].to_f < 1.301029996 ) then
のようにすればよいかと。
ありがとうございます!!
出来ました!
Perlメインでプログラムを書く事が多かったので、sakusaker7さんのおっしゃるとうり自動変換を無意識のうちに期待していたようです。
こんな基礎的な事で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python... 環境設定 初心者です...
-
ITパスポートの勉強をしていま...
-
Adobe Premiere Proについて教...
-
Google ColaboでGUI作成
-
vba クリップボードクリアにつ...
-
VBA 電話番号の正規表現について
-
バッチファイルが保存されてい...
-
大学のゼミのレポートがムカつ...
-
プログラミングサイトについて。
-
プログラミング ソースコード
-
Windowsのアプリ開発ってなんの...
-
入力された文字列が、LD22000を...
-
テキストファイルのファイル名...
-
Processingについて
-
過剰なオブジェクト指向脳から...
-
pythonにてseleniumを使うも、...
-
htaccessで特定のディレクトリ...
-
このURLで広告を出しているのは...
-
pythonでのカーソル移動がずれる
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Rubyのpopen3について
-
rubyの構文(&&を用いた条件分...
-
Ruby / passenger のインストー...
-
システムエンジニアの適正について
-
小文字wと大文字Wの区別
-
初心者 パイソンプログラム
-
プログラミング講師はまだ需要...
-
VB.NETで階乗を求めるプログラ...
-
web上のhtmlファイルから文字デ...
-
RubyでNo such file or directo...
-
プログラミング言語で大文字と...
-
Rubyの.soについて
-
九九の表示
-
ruby の Σ計算
-
バーコードのチェックデジット...
-
CかC++どちらを覚えるべきですか?
-
We're sorry, but something we...
-
ruby.exeとrubyw.exeに違いがあ..
-
WinXP+Apache2にerubyを入れま...
-
大学生のプログラミングバイト...
おすすめ情報