Ruby 3.3 リファレンスマニュアル

instance method String#to_c

to_c -> Complex[permalink][rdoc][edit]

自身を複素数 (Complex) に変換した結果を返します。

以下の形式を解析できます。i、j は大文字、小文字のどちらでも解析できます。

  • 実部+虚部i
  • 実部+虚部j
  • 絶対値@偏角

それぞれの数値は以下のいずれかの形式で指定します。先頭の空白文字や複素数値の後にある文字列は無視されます。また、数値オブジェクトと同様に各桁の間に「_」を入れる事ができます。

  • "1/3" のような分数の形式
  • "0.3" のような10進数の形式
  • "0.3E0" のような x.xEn の形式

自身が解析できない値であった場合は 0+0i を返します。


p '9'.to_c         # => (9+0i)
p '2.5'.to_c       # => (2.5+0i)
p '2.5/1'.to_c     # => ((5/2)+0i)
p '-3/2'.to_c      # => ((-3/2)+0i)
p '-i'.to_c        # => (0-1i)
p '45i'.to_c       # => (0+45i)
p '3-4i'.to_c      # => (3-4i)
p '-4e2-4e-2i'.to_c  # => (-400.0-0.04i)
p '-0.0-0.0i'.to_c # => (-0.0-0.0i)
p '1/2+3/4i'.to_c  # => ((1/2)+(3/4)*i)
p '10@10'.to_c     # => (-8.390715290764524-5.440211108893697i)
p '-0.3_3'.to_c    # => (-0.33+0i)
p " \t\r\n5+3i".to_c # => (5+3i)
p '5+3ix'.to_c     # => (5+3i)
p 'ruby'.to_c      # => (0+0i)