decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Rounding floating point numbers? | 661 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Rounding floating point numbers?
Authored by: Anonymous on Thursday, March 28 2013 @ 10:05 PM EDT
I was doing rounding on floating point numbers in the early sixties.
Using a slide rule seems (on a quick skim) to be pretty similar.

Chris B

[ Reply to This | Parent | # ]

Rounding floating point numbers?
Authored by: jrl on Monday, April 01 2013 @ 05:43 PM EDT
The IEEE floating point standard is rarely able
to represent a value exactly. The same goes for decimal.

1.0/3.0 = 0.333333333 but I have to stop before running
out of paper.

A PowerPC for instance uses 64-bit floating point format.
A "mantissa" (the numeric part of the number) and an
"exponent" are used to create a representation of the number.
Unless there is an exact representation of the desired
number (rare) the only way to get the number into a
register is to round it. The "Floating point Status/Control
Register" includes control bits which configure what
rounding method will be used - round to nearest, round
towards zero, round up, and round down are the alternatives.

When coding the above example of 1.0/3.0, I might say
double non_exact_number = 1.0/3.0 - the compiler
rounds this to the correct number of bits and constructs
the desired bit pattern, and emits code to load that
bit-pattern into a register. I can then multiply this
by another floating point register, and the result is
that a pre-rounded number had another floating point
operation performed on it. This style of floating point
operations dates back before the standard, which came
out in 1987 - the general form of the idea has been
available in hardware since 1967.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )