digitalmars.D.learn - Division - precision
- Rygel (9/9) May 21 2016 Hi there. I'm a beginners, so my questions could be silly.
- Era Scarecrow (5/11) May 21 2016 I'm not sure how to globally set the number of output
- =?UTF-8?Q?Ali_=c3=87ehreli?= (24/33) May 21 2016 There are two kinds of precision to talk about in this case:
- Rygel (1/1) May 21 2016 Ah, ok, got it. thx you all.
Hi there. I'm a beginners, so my questions could be silly. double x1 = 7.0; double x2 = 3.0; writeln(x1 / x2); from this code i get: 2.33333 this is ok but how can i get more digits? For example: 2.333333333..... thx :-)
May 21 2016
On Saturday, 21 May 2016 at 21:45:19 UTC, Rygel wrote:Hi there. I'm a beginners, so my questions could be silly. double x1 = 7.0; double x2 = 3.0; writeln(x1 / x2); this is ok but how can i get more digits? For example: 2.333333333.....I'm not sure how to globally set the number of output characters, but you can force it with formatting. writefln("%.10g", x1 / x2); //floating point with 10 digits of precision
May 21 2016
On 05/21/2016 02:45 PM, Rygel wrote:Hi there. I'm a beginners, so my questions could be silly. double x1 = 7.0; double x2 = 3.0; writeln(x1 / x2); from this code i get: 2.33333 this is ok but how can i get more digits? For example: 2.333333333..... thx :-)There are two kinds of precision to talk about in this case: 1) The value: You can't do anything about the precision other than picking a more precise type. ('real' has more precision than 'double'.) 2) The display: You can display the value more precisely with a format specifier like "%.10f" (with 10 digit precision): import std.stdio; import std.string; void main() { double x1 = 7.0; double x2 = 3.0; pragma(msg, format("%s has %s-digit precision", double.stringof, double.dig)); writeln("Printing with too many digits:"); writefln("%.30f", x1 / x2); static const betterFormatSpec = format("%%.%sf", double.dig); writefln("Printing with just the right amount precision:"); writefln("(The format string used is \"%s\".)", betterFormatSpec); writefln(betterFormatSpec, x1 / x2); } In any case, watch Don Clugston's DConf 2016 presentation as an eye-opener and great entertainment: http://www.ustream.tv/recorded/86406491/highlight/699207 Ali
May 21 2016