2013-04-25 53 views
0

我嘗試使用下面的fprintf中的代碼如何讓fprintf顯示更高的精度?

 n 
     m 
    fprintf('The minimum value of the modulus of the image of C_r is %d \n\nThe correspoding point is at %d \n\n',m,n) 

,我得到的結果

n = 

    3.632213809443102 + 3.680287679864827i 


m = 

    5.170831128945713 

The minimum value of the modulus of the image of C_r is 5.170831e+000 

The correspoding point is at  3.632214e+000 

,我已打印n的值,並以單獨m設置爲顯示我多麼希望他們出來 - 我如何讓fprintf顯示更高精度的數字?我試圖改變%d項,但無濟於事

+3

?爲什麼不是'%f'或'%g'? – Shai 2013-04-25 15:25:21

+3

http://www.mathworks.com/help/matlab/matlab_prog/formatting-strings.html#bq05n1r-1 – Dan 2013-04-25 15:26:46

+0

因爲我不知道自己在做什麼,說實話。我翻閱了一本手冊,並認爲我應該使用%d。我會嘗試你的回答,看看 – user27182 2013-04-25 15:28:39

回答

3

如何

fprintf('%.15f\n', m); 

打印與你爲什麼用'%D'的浮點15位數字

+0

它仍然切斷'+ i ...'位,我是否必須分開放置實部和虛部? – user27182 2013-04-25 15:30:50

+1

它似乎沒有辦法繞過它。見[這篇文章](http://www.mathworks.com/matlabcentral/newsreader/view_thread/94170)。 – Shai 2013-04-25 15:34:07

+5

也許:'fprintf('%。15f +%.15fi \ n',real(z),imag(z))' – Amro 2013-04-25 15:34:38