Explain an apparent bug reported by
Jarkko Hietaniemi [Mon, 17 Sep 2001 20:07:20 +0000 (20:07 +0000)]
Richard J. Barbalace <rjbarbal@MIT.EDU>,
with additional explanation from Gisle Aas.

p4raw-id: //depot/perl@12059

ext/Time/HiRes/HiRes.pm

index f512145..e52d7ee 100644 (file)
@@ -127,6 +127,19 @@ Returns a floating seconds since the epoch. This function can be imported,
 resulting in a nice drop-in replacement for the C<time> provided with perl,
 see the EXAMPLES below.
 
+B<NOTE>: Since Sunday, September 9th, 2001 at 01:46:40 AM GMT the
+default floating point format of Perl and the seconds since epoch
+have conspired to produce an apparent bug: if you print the value
+of Time::HiRes::time() you seem to be getting only five decimals,
+not six as promised (microseconds).  Not to worry, the microseconds
+are there (assuming your platform supports such granularity).
+What is going on is that the default floating point format of Perl
+only outputs 15 digits.  In this case that means ten digits before the
+decimal separator and five after.  To see the microseconds you can use
+either printf/sprintf with C<%.6f>, or the gettimeofday() function in
+list context, which will give you the seconds and microseconds as two
+separate values.
+
 =item sleep ( $floating_seconds )
 
 Converts $floating_seconds to microseconds and issues a usleep for the