*ブログに戻る →ここ です。


Rubyの学習 free171
繰り返し浮動小数点を足していく。
若干計算結果がおかしい。
日本語に変換していないが文字化けしていない。

↓Rubyのプログラムを実行すると以下のように表示される。

C:\RubyTest>ruby test_sada9-6.rb
0.6.step(3.8, 0.2)
0.6に0.2を繰り返し足していくが、3.8で停止する。
_sadaNum = 0.6
_sadaNum = 0.8
_sadaNum = 1.0
_sadaNum = 1.2
_sadaNum = 1.4
_sadaNum = 1.6
_sadaNum = 1.8
_sadaNum = 2.0
_sadaNum = 2.2
_sadaNum = 2.4
_sadaNum = 2.6
_sadaNum = 2.8000000000000003      ←ここからおかしい
_sadaNum = 3.0
_sadaNum = 3.2
_sadaNum = 3.4000000000000003      ←ここからおかしい
_sadaNum = 3.6
_sadaNum = 3.8

0.6.step(3.8, 0.2)
0.6に0.2を繰り返し足していくが、3.8で停止する。
_sadaNum = 0.6
_sadaNum = 0.8
_sadaNum = 1.0
_sadaNum = 1.2
_sadaNum = 1.4
_sadaNum = 1.6
_sadaNum = 1.8
_sadaNum = 2.0
_sadaNum = 2.2
_sadaNum = 2.4
_sadaNum = 2.6
_sadaNum = 2.8000000000000003      ←ここからおかしい
_sadaNum = 3.0
_sadaNum = 3.2
_sadaNum = 3.4000000000000003      ←ここからおかしい
_sadaNum = 3.6
_sadaNum = 3.8


4.5.step(0.6, -0.3)
4.5から-0.3を繰り返し足していくが、0.6で停止する。
_sadaNum = 4.5
_sadaNum = 4.2
_sadaNum = 3.9
_sadaNum = 3.6
_sadaNum = 3.3
_sadaNum = 3.0
_sadaNum = 2.7
_sadaNum = 2.4
_sadaNum = 2.1
_sadaNum = 1.8
_sadaNum = 1.5
_sadaNum = 1.2000000000000002      ←ここからおかしい
_sadaNum = 0.9000000000000001
_sadaNum = 0.6000000000000001

4.5.step(0.6, -0.3)
4.5から-0.3を繰り返し足していくが、0.6で停止する。
_sadaNum = 4.5
_sadaNum = 4.2
_sadaNum = 3.9
_sadaNum = 3.6
_sadaNum = 3.3
_sadaNum = 3.0
_sadaNum = 2.7
_sadaNum = 2.4
_sadaNum = 2.1
_sadaNum = 1.8
_sadaNum = 1.5
_sadaNum = 1.2000000000000002      ←ここからおかしい
_sadaNum = 0.9000000000000001
_sadaNum = 0.6000000000000001


4.5.step(-0.9, -0.3)
4.5から-0.3を繰り返し足していくが、-0.9で停止する。
_sadaNum = 4.5
_sadaNum = 4.2
_sadaNum = 3.9
_sadaNum = 3.6
_sadaNum = 3.3
_sadaNum = 3.0
_sadaNum = 2.7
_sadaNum = 2.4
_sadaNum = 2.1
_sadaNum = 1.8
_sadaNum = 1.5
_sadaNum = 1.2000000000000002      ←ここからおかしい
_sadaNum = 0.9000000000000001
_sadaNum = 0.6000000000000001
_sadaNum = 0.30000000000000016     
_sadaNum = 1.6653345369377348e-16  0.00000000000000016653345369377348
_sadaNum = -0.2999999999999998     限りなく-3
_sadaNum = -0.5999999999999999     限りなく-6
_sadaNum = -0.8999999999999998     限りなく-9

4.5.step(-0.9, -0.3)
4.5から-0.3を繰り返し足していくが、-0.9で停止する。
_sadaNum = 4.5
_sadaNum = 4.2
_sadaNum = 3.9
_sadaNum = 3.6
_sadaNum = 3.3
_sadaNum = 3.0
_sadaNum = 2.7
_sadaNum = 2.4
_sadaNum = 2.1
_sadaNum = 1.8
_sadaNum = 1.5
_sadaNum = 1.2000000000000002      ←ここからおかしい
_sadaNum = 0.9000000000000001
_sadaNum = 0.6000000000000001
_sadaNum = 0.30000000000000016     
_sadaNum = 1.6653345369377348e-16  0.00000000000000016653345369377348
_sadaNum = -0.2999999999999998     限りなく-3
_sadaNum = -0.5999999999999999     限りなく-6
_sadaNum = -0.8999999999999998     限りなく-9


C:\RubyTest>


Saturday,September,21,2013

プログラムの表示

=begin Saturday,September,21,2013 ○値から謎の多いクラス名を調べてみる。 ルビーの値(オブジェクト)が所属するクラス Numeric (わからない) Float (浮動小数点数) Integer (わからない) Bignum (大きな整数) Fixnum (整数) PHPでの値の型 string (文字句) integer (数字) double (小数点) free147.php ←ここで試した。 謎の多いクラスを調べる方法は下記、またの機会に別のページで試してみます。 #! ruby -Ku print("定近です。".class())←クラスを調べるには、これを使って調べます。 print("\n") #! ruby -Ku ← の「u」とは、UTF-8 のこと(文字化けを回避します)。 s or S Shift_JIS e or E EUC-JP u or U UTF-8 n or N NONE(ASCII) 「require」メソッドで「kconv」ライブラリを読みんで、モジュール関数「Kconv.tosjis()」 を使用することにより表示の時に Shift_JIS に変換している。(メソットというからにはクラスがあるんでしょうね) まだきちんと理解できていません。 保存するときは、文字コードセットを UTF-8 にすること。 サクラエディタを使用しています。 コマンドプロンプトを開きます。 C:Documents and Settings\User> C:Documents and Settings\User>cd C:\rubytest と入力する。「cd」カレントディレクトリの略。現在のフォルダという意味(フォルダは任意の名前で自作した) C:\RubyTest>ruby test_sada9-6.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada9-6テキスト #--------------------------------------------------- =begin 今回学んだ[step]メソッドはNumericクラスである。 尚、前回学んだ(times)(upto)(downto)メソッドはIntegerクラスであるが、 このクラスはNumericクラスのサブクラスである。 (step)メソッドはFloat(浮動小数点数)クラスのオブジェクトにも使用できる。 今回小数点に使用したが簡単な足し算がおかしなことになっている? 使えるのだろうか? 使い方を間違ってるのかな? =end #! ruby -Ku print("0.6.step(3.8, 0.2) 0.6に0.2を繰り返し足していくが、3.8で停止する。\n") 0.6.step(3.8, 0.2){|_sadaNum| print("_sadaNum = ", _sadaNum, "\n") } print("\n") print("0.6.step(3.8, 0.2) 0.6に0.2を繰り返し足していくが、3.8で停止する。\n") 0.6.step(3.8, 0.2) do |_sadaNum| print("_sadaNum = ", _sadaNum, "\n") end print("\n") print("\n") print("4.5.step(0.6, -0.3) 4.5から-0.3を繰り返し足していくが、0.6で停止する。\n") 4.5.step(0.6, -0.3){|_sadaNum| print("_sadaNum = ", _sadaNum, "\n") } print("\n") print("4.5.step(0.6, -0.3) 4.5から-0.3を繰り返し足していくが、0.6で停止する。\n") 4.5.step(0.6, -0.3) do |_sadaNum| print("_sadaNum = ", _sadaNum, "\n") end print("\n") print("\n") print("4.5.step(-0.9, -0.3) 4.5から-0.3を繰り返し足していくが、-0.9で停止する。\n") 4.5.step(-0.9, -0.3){|_sadaNum| print("_sadaNum = ", _sadaNum, "\n") } print("\n") print("4.5.step(-0.9, -0.3) 4.5から-0.3を繰り返し足していくが、-0.9で停止する。\n") 4.5.step(-0.9, -0.3) do |_sadaNum| print("_sadaNum = ", _sadaNum, "\n") end print("\n")


* 参考にしたサイトは→ こちら です。

これは赤色の文字例です。

これは青色の文字例です。