www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Printing a floats in maximum precision

reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
What's the easiest way to print a double in maximum precision?
Jan 17 2017
next sibling parent reply pineapple <meapineapple gmail.com> writes:
On Wednesday, 18 January 2017 at 00:09:42 UTC, Nordlöw wrote:
 What's the easiest way to print a double in maximum precision?
https://github.com/pineapplemachine/mach.d/blob/master/mach/text/numeric/floats.d#L60 You can also try the formatting directive "%.20f" but unlike the former I can't offer any guarantees of its accuracy (it's probably accurate)
Jan 17 2017
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Wednesday, 18 January 2017 at 00:23:37 UTC, pineapple wrote:
 On Wednesday, 18 January 2017 at 00:09:42 UTC, Nordlöw wrote:
 What's the easiest way to print a double in maximum precision?
https://github.com/pineapplemachine/mach.d/blob/master/mach/text/numeric/floats.d#L60 You can also try the formatting directive "%.20f" but unlike the former I can't offer any guarantees of its accuracy (it's probably accurate)
Alternatively use %a to print in hex to verify exact bit patterns.
Jan 17 2017
parent kinke <noone nowhere.com> writes:
On Wednesday, 18 January 2017 at 03:36:39 UTC, Nicholas Wilson 
wrote:
 Alternatively use %a to print in hex to verify exact bit 
 patterns.
+1, if it doesn't have to be human-readable.
Jan 18 2017
prev sibling parent Basile B. <b2.temp gmx.com> writes:
On Wednesday, 18 January 2017 at 00:09:42 UTC, Nordlöw wrote:
 What's the easiest way to print a double in maximum precision?
%.6g for floats and %.17g for doubles. This is for example what's used on std.json to get a perfect conversion from string to value. the number is the maximum number of digits in the fractional part. 6 and 17 are rounded, real values can be found here (https://en.wikipedia.org/wiki/Floating_point#Internal_representation) see also: and this https://github.com/dlang/phobos/pull/4343#issuecomment-220810593
Jan 17 2017