From 43f5f3755d7fa66d9f525fe94fcc1517d3be55b9 Mon Sep 17 00:00:00 2001 From: zlg Date: Thu, 21 Feb 2013 03:34:20 -0600 Subject: Correct 2-01 solution FLT_MIN and DBL_MIN refer to the lowest _positive number_ representable in floating-point form on the machine, not the lowest _negative number_. Subtracting FLT_MAX from 0 will give you the minimum. --- ch2/2-01_limits.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'ch2') diff --git a/ch2/2-01_limits.c b/ch2/2-01_limits.c index 666685b..05db050 100644 --- a/ch2/2-01_limits.c +++ b/ch2/2-01_limits.c @@ -128,15 +128,25 @@ int main() { db = (db + dba) - dba; } - printf("`float` maximum: %e\n", dbl); - printf("`float` minimum: -%e\n", dbl); + printf("`double` maximum: %e\n", dbl); + + db = 0.0; + dbl = 0.0; + dba = 0.0; + while (db == 0.0) { + dbl = dba; + dba = dba - 1111e297; + db = (db - dba) + dba; + } + + printf("`double` minimum: %e\n", dbl); printf("\nNow, let's cheat and use the helpful headers!\n"); printf("`char`s go from %d to %d (unsigned, up to %u)\n", SCHAR_MIN, SCHAR_MAX, UCHAR_MAX); printf("`short`s go from %d to %d (unsigned, up to %u)\n", SHRT_MIN, SHRT_MAX, USHRT_MAX); printf("`int`s go from %d to %d (unsigned, up to %u)\n", INT_MIN, INT_MAX, UINT_MAX); printf("`long`s go from %ld to %ld (unsigned, up to %lu)\n", LONG_MIN, LONG_MAX, ULONG_MAX); - printf("`float`s range from %e to %e\n", FLT_MIN, FLT_MAX); - printf("`double`s range from %e to %e\n", DBL_MIN, DBL_MAX); + printf("`float`s range from %e to %e\n", 0.0 - FLT_MAX, FLT_MAX); + printf("`double`s range from %e to %e\n", 0.0 - DBL_MAX, DBL_MAX); return 0; } -- cgit v1.2.3-54-g00ecf
path: root/setup.py (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2018-10-09cli: add 'update' commandzlg3-20/+92
2018-10-06cli: Add "delete" commandzlg2-0/+19
2018-10-06Remove ID field from DBzlg3-38/+46
2018-10-06cli: change "Status" heading to "Progress"zlg2-36/+40
2018-09-29Bump to 0.3alpha5 for PyPIzlg1-1/+1
2018-09-29cli: Add pretty printing to 'list' commandzlg3-17/+107
2018-09-08setup.py: Bump to alpha4 for PyPIzlg1-1/+1
2018-09-08cli: add '--raw' option to list commandzlg2-9/+45
2018-09-08Add remaining filters to vgstash packagezlg1-2/+11
2018-09-04Update LICENSE to match setup.pyzlg1-80/+67
2018-09-03Branch off from master with pytest, tox, clickzlg16-778/+779
2018-03-18Flesh out filter types and ownership statuszlg3-82/+144
2018-03-18README.mdown: break line correctlyzlg1-1/+1
2018-03-18add 'playlog' list filterzlg2-2/+9
2018-03-13Update helpers a bitzlg1-2/+9
2018-03-13Make VGSTASH_DB_LOCATION point to a filezlg2-21/+20
2016-11-18Remove settings from helpers.shZe Libertine Gamer1-5/+0
2016-11-15Correct phrasing in README.Ze Libertine Gamer1-4/+4
2016-11-13DerpZe Libertine Gamer1-0/+1
2016-11-03Improve error handling in shell scriptsZe Libertine Gamer4-3/+23
2016-10-24Correct run_again, add recursionZe Libertine Gamer1-0/+4
2016-10-21Add quotes to correct behavior for arglistZe Libertine Gamer1-1/+1
2016-10-14updater.sh: add recursion, error handlingZe Libertine Gamer1-43/+101
2016-10-14Correct pipe-handling behaviorZe Libertine Gamer1-1/+9
2016-10-12Clarify a method to move between platformsZe Libertine Gamer1-2/+5