Note 1) The million below should, of course, be a parameter
Note 2) I am not allowed to submit patches, so the below must be taken only as a suggestion.
*** seq.c~ Wed Dec 1 23:45:17 2004 --- seq.c Sun Jan 23 07:55:07 2005 *************** *** 182,192 **** print_numbers (const char *fmt) { double i;
for (i = 0; /* empty */; i++)
{
double x = first + i * step;
! if (step < 0 ? x < last : last < x)
break;
if (i)
fputs (separator, stdout);
--- 182,194 ----
print_numbers (const char *fmt)
{
double i;
+ double delta = step/1000000.0;
+ double nlast = last + delta; for (i = 0; /* empty */; i++)
{
double x = first + i * step;
! if (step < 0 ? x < nlast : nlast < x)
break;
if (i)
fputs (separator, stdout);At 10:15 PM -0800 1/21/05, Paul Eggert wrote:
"Luis A. Florit" <[EMAIL PROTECTED]> writes:
> the output of the command: seq -w 1 0.2 4is the sequence
1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8
Why there is no 4.0 in the last sequence?
Floating point roundoff error. It's documented in the manual.
If you can submit a fix, please do! It would improve seq. (Warning: it won't be trivial.)
_______________________________________________ Bug-coreutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-coreutils
_______________________________________________ Bug-coreutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-coreutils
