C#の場合は、扱える数値の範囲を把握しておかないといけません。例えばci,imをintで宣言した場合は、多分ですが
実行時エラーになると思います。
Rubyでは扱える数字の範囲をあまり意識しなくて良いようです。変数の宣言と言うものもないので、当然なんですかね?
ただこの場合は、unitが整数になるようにしました。端数が出てしますと、結果が違うようになるでしょうから。もう一つ
これだけ大きい数になると、読めないのですが、このままでは少し不親切かも。3桁毎に「,」を入れましょうかね。
出力された結果だけ見れば、何となく良いんですが、スクリプトはごちゃごちゃし過ぎですね。例えばlnprintとか
の名前で一行で出力すればいいと思います。
数字をprintする部分だけを別のファイルにしました。require "longnumprint.rb"となってます。
区分したら幾分見た目はすっきりしましたが、commasub(str)が少し不満ですね。数値一けたに一文字ですから
そうではなくて、数値を三桁ごとに区切り、それを文字の配列にすることも考えられますね。なかなか進まないので
後からにしますか?