MS Excel には、複素数を操作するための一連の関数が用意されています。実数を表示する場合、[セルの書式設定] ダイアログから小数点以下の桁数を設定できます。ただし、複素数では機能しません。
複素数の表示精度を設定するにはどうすればよいですか? そのために使用できるカスタム テンプレートはありますか?
0.98078528040323+0.195090322016128i
-->0.980+0.195i
答え1
複雑な数式を、フォーマットを行う UDF でラップすることができます。
Function FormatComplex(r As Variant, fmt As String) As String
With Application.WorksheetFunction
FormatComplex = Format(.ImReal(r), fmt) & Format(.Imaginary(r), fmt) & "i"
End With
End Function
こう呼んで
=FormatComplex(IMSQRT(-2),"+0.000")
結果:
+0.000+1.414i
答え2
これを数式(別のセル内)で実現するには、次の式を使用します。ここで、書式設定されていない複素数は ですA1
。
=COMPLEX(VALUE(TEXT(IMREAL(A1),"0.000")),VALUE(TEXT(IMAGINARY(A1),"0.000")))