-1
>>> a=4.
>>> b=3.
r = sqrt(a ** 2 + b ** 2)
x = atan(b/a)
a = r * cos(x)
b = r * sin(x)
k = 0
y = (2 * pi * k + x) /3

root1 = r ** (1./3) * ( cos(y)+ 1j * sin(y) )
root11 = root1**4/root1
>>> root11
(3.999999999999999+2.999999999999999j)
>>> print root11
(4+3j)

この複素数を「(3.999999999999999+2.999999999999999j)」形式で出力するにはどうすればよいですか? 私は試した

>>> print '%15f %15fi' % (root11.real, root11.imag)
4.000000        3.000000i

助けてください

4

3 に答える 3

2

新しい形式の構文を使用することもできます。

print "{0:.15f}+{1:.15f}i".format(root11.real, root11.imag)
于 2013-06-03T05:28:57.270 に答える
1

使用する必要があります

print '%.15f %.15fi' % (root11.real, root11.imag)

小数点以下の精度をフォーマットするの.前にがあることに注意してください。15fがない場合は.、フィールド幅を指定しています。

私のマシン(Python 2.7.3)では、結果は次のとおりです。

3.999999999999999 2.999999999999999i
于 2013-06-03T03:29:47.810 に答える