# More digits from octave

Hi, how can I get all the 15/16 digits from a command like pi = octave('pi')?

edit retag close merge delete

Sort by » oldest newest most voted

Hi, I found myself a solution, for instance:

a=Matrix(RR,octave('sprintf("%.16e ",rand(1,4))'))

more

Starting Octave just to get a numerical value of pi is unnecessarily slow.

If you need a floating-point approximation to pi, I would suggest:

sage: pi = RDF.pi()
sage: pi
3.141592653589793


But maybe you have other reasons to use Octave?

more

Sorry, try this instead a=octave('0.123456789'). I chose pi just to be short. I get a=0.123457, lost two digits.

( 2016-07-22 14:56:39 +0200 )edit

As far as I know, the "octave" command really just gets you an interface that allows you to pass strings as "typed in to octave" and get you back strings as printed by octave. So:

  octave:1> 0.123456789
ans =  0.12346


suggests octave is naturally stingy with printing digits. In order to get more digits back via the octave interface, you should do whatever you do to normally coerce octave to print more digits. Perhaps https://www.gnu.org/software/octave/d... helps.

more