Audience
I encourage even the oldest HP hands to at least give this article a skim. Many of the following details may be long ingrained, making this discussion appear redundant, yet unless you have been using this series of community-developed calculators for a long time, you are likely to find at least one surprise here.
For those whose RPN experience begins and ends with HP calculators, I assure you that there are differences in this evolutionary line, ones which explore directions HP never put into practice, possibly even some they never considered during their decades-gone design phases. These new machines offer capabilities the old HP Corvallis Division could only dream of, and we are now taking advantage.
For those readers who came up on non-HP calculators and are new to this RPN scene, I am certain I can broaden your outlook with what follows.
No Fractional Part, No Effect
There is a common pilot error that frequently bites new R47 users. The ALL, FIX, SCI, ENG, SIG, and UNIT number display modes operate on real numbers only; when you give them nothing but an integer, they appear to have no effect. This is because the R47 offers both 34-digit real values and 1000-digit long integers, which argues for a design that maintains integer inputs as integers as long as it can in order to maintain the exact value given, in full precision. If you want these modes to take effect, you must provide a real number, somehow.
The fact that these modes operate on the fractional part1 of the number2 — which integers lack — is an intentional design difference. It does not constitute a bug.
Lesser calculators immediately convert inputs to binary floating-point or 10-12 digit BCD formats. Old hands wishing for a return of this “all inputs are real” behavior may regain it by enabling the 🟧 PREF ⬆︎ 🟧 iℝ setting.
Classic Modes
The R47 offers all the number display modes one may expect on its 🟧 DISP menu.
ALL: show “everything?”
This may initially appear to be the mode non-scientific calculators run in, where the machine simply shows everything its calculation engine can confidently produce; guard digits remain hidden. Playing around, one soon discovers that the R47 can show results with exponents in this mode, puncturing that hypothesis while simultaneously leading one to a more refined guess that it is the same as the HP-42S ALL mode or the “normal” mode of a modern cheapie scientific. This, too, is incorrect.
The key difference in the R47’s ALL mode is that it has a decimal length limit parameter, much like that of the modes documented below.
One may then ask, “What can ALL 1 possibly mean on a machine with 34-digit real numbers, and how does that differ from ALL 9?”
Good question! This enhancement traces back to the WP34s, and it controls the point where the calculator shifts from showing values in full precision to showing them with an exponent. To see the distinction, try these inputs:
ALL 3
1 ENTER 10 ÷
100 ÷
10 ÷
With 3 digits allowed after the decimal point per the first command, the second line produces “0.1” as expected. Dividing it by 100 then shows “0.001” as expected, being barely within our set limit. A further division by 10 pushes it to show “1.×10⁻⁴” where a more mainstream scientific calculator would have waited until you got to a much smaller number before switching into scientific notation.
In addition to the length-limited behavior, there is ALL 0 mode, a special case which thankfully does not mean “show me nothing.” It is the closest mode to the one cheap classroom scientific calculators default to out of a wish not to frighten the student with exponents.
Exponents do not worry the readers of this wiki, however, and so we proceed.
FIX: fixed-point decimal
This mode shows a fixed number of digits to the right of the radix mark, with rounding.3
In FIX 4 mode, an entry of “12.34” produces “12.3400” on the R47.
There are some who use FIX 0 mode to force the calculator to give apparent integer results, but do realize that for this to occur, the number must remain a real underneath. If you need a proper integer under the R47 type system, there are other ways to achieve that superficial end, which may have practical benefits.
This mode is acceptable when pressing the R47 into use as a financial calculator, where you are likely to want FIX 2 mode for the most widely used monetary units: the Swiss franc used by our favorite extant calculator manufacturer, the euro, assorted dollar currencies, the decimalized British pound, the South African rand…
FIX mode is also useful for replicating historical behaviors.
Otherwise, we have better alternatives now, especially in STEM applications. Read on.
SCI: scientific notation
This mode shows a single nonzero digit to the left of the radix mark, with the given number of digits to the right, scaled using a power-of-10 multiplier. An entry of “123.4” shows as “1.2340×10²” under SCI 4 mode even though our input fits within our 4-digit limit.
A more extreme case is that an input of “.1” shows as “1.0000×10⁻¹” under SCI 4.
To those who see 4+1=5 digits in my examples above, consider this: a request for zero digits of precision is nonsensical in SCI mode. The limit must apply to the fractional part only. The phantom “+1” reflects the nature of scientific notation, not a calculator-specific behavior.
ENG: engineering notation
This mode is similar to SCI except that it restricts the exponent to an integer multiple of 3 in accord with SI unit prefixes:
| Prefix | ENG |
|---|---|
| pico | ×10-12 |
| nano | ×10-9 |
| micro | ×10-6 |
| milli | ×10-3 |
| kilo | ×103 |
| mega | ×106 |
| giga | ×109 |
| tera | ×1012 |
One learns to read these exponents accordingly, but see UNIT below for an arguably superior alternative.
ENG mode produces the same display as SCI when the exponent happens to fit into the above scheme, but when not, it will shift 1 or 2 digits to the left of the radix mark to accommodate this restriction, leaving the balance to the right. An entry of “0.1” becomes “100.00×10⁻³” in ENG 4 mode, for instance. If that input happened to be a value in inches, we would read this as “100 mils” or “100 thous” depending on who taught us their preferred scheme, but if it was in meters, it reads as 100 mm the world ’round.
R47 vs Classic HP Behavior
An HP-42S displays up to 12 digits at a time, yet it takes a single digit as argument for its four main numeric formatting modes: ALL, FIX, SCI, and ENG. HP chose this path for programming compatibility with the 10-digit machines preceding it. It also has the virtue of not needing an explicit ENTER to terminate the argument for the most common use cases, but the downside is that it crowded HP into inventing an oddball notation for specifying an 11- or 12-digit display: SCI .0 and SCI .1 for scientific mode, respectively.
The R47 preserves as much of that design as still makes sense in its wider world, maintaining a reasonable level of compatibility with old HP RPN programs. When setting a length limit on one of its numeric display modes, the R47 takes inputs of 0 or 2-9 as single digit values like on the HP-42S, not needing an explicit ENTER to terminate the input, but it differs when you give it a 1: it will wait for a second digit or an ENTER.
This precludes the need for the . hack: SCI 11 works as expected.4
This design also means you cannot ask for a limit longer than 19 despite the R47's 34-digit capability. This is sensible given that the default display settings allow only about 20 digits on a single line. One must use SHOW mode to see more.
New Modes
In addition to the classic modes above, the R47 adds a few which are not unique to it, but which are less commonly found.
UNIT: show units
This is an extension of ENG mode, except that instead of showing powers of 10 divisible by 3 to indicate SI units, it shows the SI prefix directly. What ENG 3 would show as 123.5×10³ appears as 123.5 k in UNIT 3 mode. In this example the underlying number is 123456.7, which shows that both modes round the number in accord with the fractional digit limit you set.
In its default mode, the R47 only does this for the 15 orders of magnitude to either direction from 0, covering the common femto- to peta- unit prefixes. Beyond those limits, it switches back into ENG notation unless you have the PFX.All flag enabled, in which case it includes the much rarer prefixes covering ±30 orders of magnitude, covering quecto- to quetta-. There being no more SI unit prefixes currently defined, the R47 switches unconditionally into regular ENG display mode beyond these limits.
If you set the 1024ⁿ flag under 🟧 PREF CFLG, you get similar behavior but over the 0 to 10248-1 span covered by the first seven defined SI information unit prefixes, sometimes called the “binary” prefixes. There are three additional ones currently defined which are not handled by the R47 code, but since these are rarely seen outside science fiction, no one is in a hurry to fill these lacunae.
See this for one good use case; there are others.
There is a behavior difference between these cases worth knowing about. When you have the 1024ⁿ flag set, the prefixes are shown unconditionally, but with that flag cleared — switching to a mode we might analogously call 1000ⁿ — the display falls under the ENG rules, where integers are shown without exponents, thus without unit prefixes in UNIT mode. If you find yourself frustrated by a unit prefix that refuses to show up, try the remedies recommended above.
SIG: limit display to significant figures
The FIX, SCI and ENG modes all try to get at the problem of significant figures in different ways,5 but this mode attempts to do it the way it is taught in mathematics classes. I characterize it as an attempt for multiple intertwined reasons, which indirectly explains the length of this section.
Before we dive in, let us first observe that the most appropriate applications for SIG mode involve physical measurements. Next, you will need to accept that a measurement of 123 mm has three significant figures whether it is written that way or as 0.123 m. This is the essence of the concept, but if you wish to read further on the topic, the above link to Wikipedia’s treatment is solid.
The likeliest confusion results from trying something like this:
🟧 DISP SIG 03
123 ENTER
0.123 ENTER
This sequence puts our given “123” in Y as expected, but for some reason it produces “0.1230” in X.
Why? Is this not objectively wrong? We requested 3-digit displays, yet it gives 4 in the second instance.6
No, it’s correct, but for a combination of two independent reasons:
The integer input handling called out above. If you had entered “
123.” with the trailing dot in the first example, it would show “123.0” in this mode, making the Y value consistent with X.The current implementation of
SIGmode gives one more digit than you asked for out of a desire7 to match behavior withSCImode, which as we noted above produces a “phantom” extra digit.
Analog Measurements
Rather than characterize this n+1 rule as a foolish consistency with SCI mode, a more charitable view stems from the nature of analog measurements, where the final significant figure is always iffy.
To see why, let us consider measuring an object with a dial caliper calibrated in millimeters, with 1 mm nominal resolution. We might think to ask the R47 for 3 significant digits, thus SIG 2 to compensate for the n+1 rule, but I would encourage SIG 3 instead because the needle may not land square with one of the dial’s ticks, yet one will be able to guesstimate down to tenths of a millimeter beyond the reading. This last digit is on a sounder basis than a wild guess, but it is not in fact reported by the caliper’s dial.
Seen that way, SIG 3 is saying, “My instrument has 3 solid digits of precision, plus one which is iffy.” Every analog instrument will have this type of uncertainty built into it. In this video on slide rules, the presenter all but brags about her ability to eyeball one additional digit beyond the engraved logarithmic markings, reliably. Her claim is plausible: she is merely taking advantage of this nature of analog measurements.
Digital Measurements
Next let us consider a 3 ½ digit digital multimeter. That fuzzy marketing term typically indicates a 1999 or 2000-count instrument, thus 4 significant figures, even though it cannot span the entire 4-digit range as a 10k count instrument can. If the manufacturer publishes specifications, you can expect to find the accuracy of each range qualified in terms like “±0.1% + 3 counts.” What this means exactly is not on-topic here, but that last bit means the final digit can be off by as much as 3 without the meter being considered out-of-calibration. This is the digital equivalent of our analog guesstimation above.
1.234 V, 12.34 V, and 123.4 V are all possible readings on a 3 ½ digit DMM, with 4 significant digits each, but I advise putting the R47 into SIG 3 mode in this particular case. This not only ensures matching displays, it makes good objective sense, if only in retrospect: the instrument is giving us 3 solid digits in its reported measurement, and the R47’s n+1 rule adequately covers the uncertainty in the last.
All this presumes that one is dealing with a competently-designed instrument, of course.8
Uncertain? You Should Be!
It is natural to take in all the above and come away with a measure of uneasiness. Throwing away digits feels “inaccurate.” This is a fallacy based on the presumption that the calculator is able to imbue your measurements with more accuracy than the instrumentation can produce. If our caliper says an object is 123 mm long and you cut it into four equal parts with a magical zero-kerf table saw, it exceeds your initial measurement’s accuracy to claim that each piece is 30.75 mm long. The defensible limit is to claim them to be about 30.8 mm long each, plus or minus some amount dependent on the caliper’s specs, its current state of calibration, and so forth.
The R47’s SIG mode reflects how real-world measurements actually work. Claiming more accuracy than one’s tools can actually produce leads to overconfidence.
Tracking Significant Digits Through a Calculation
There is one more detail that needs to be mentioned here: the R47 applies a single global significant figure limit, preventing it from automatically handling mixed measurement accuracy. If that is your situation, you will have to handle it manually.
Imagine filling a beaker partway from the lab sink, then reading off 123 mL using the graduated markings painted on it by the manufacturer. It is doubtful you have 3 significant figures in this measurement, owing to the inherent inaccuracy of the silkscreening and glassblowing processes, the effect of surface tension, your inability to hold the beaker precisely level, and so forth. Let us therefore claim 2 significant figures here; 120 mL of water.
You may then go to over to a lab balance scale specified to five digits of accuracy, recently calibrated by a NIST-traceable metrology process, and employ it to measure out a further 0.1 g of water. This gives us 0.10000 mL by definition, significant figures included. If you tip the contents of the scale pan into the beaker, it would be incorrect to then claim it now contains 123.10 mL of water, or even 120.1 mL. We previously decided our beaker’s measurement could easily be ±5 mL off, so to claim five digits clear though this calculation to the final result implies that the lab balance has magically imbued the beaker with more accuracy than its manufacturing process and real-world use case can possibly produce.
The R47 could in principle report that adding 0.10000 mL to 120 mL9 remains 120 mL because it has tagged the internal 120.1 value as SIG 2. There are calculators that can do this, mainly PC-based. We can imagine an R47 successor that adds this ability, but that is off the table for the foreseeable future.
But…34 Digits!
If we accept the preceding, does that not make a mockery of the R47’s 128-bit real number capability?
Yes, it does…
…for real-world measurements!
Only the very best instruments can exceed six or so digits of accuracy. This is why HP stuck with the 12-digit Saturn calculation engine from 1984’s HP-71B until ceding the business of designing new scientific calculators to external parties starting with the HP 33s in 2003. Saturn was beyond good enough for typical STEM use cases over that span, and it will remain so until we see a wide-ranging breakthrough in measurement precision. (Don’t hold your breath.) Thus why there are people still using Voyagers in production use cases despite their 10-digit display precision; for them, even 12-digit precision is excessive.
That is not to say the R47’s increased precision has no value whatsoever. It can matter in long chained calculations, which gets us into the ballpark accuracy discussion. It also has value in pure mathematics and other fields where we are not limited by external realities.
The R47 uses 128-bit reals not because anyone specifically requires 34-digit precision but because they are the next standardized step beyond 64-bit floating point, the basis of many “12-digit” calculators.
Alternatives to SIG Mode
Whereas SIG is a mere display mode that leaves the underlying number intact, it is possible to get similar behaviors by modifying X on the stack.
One method is to change the SDIGS setting from its 34-digit default, which then changes the output of the SDIGS? test. This controls the number of digits intermediate results are rounded to at key steps:
🟧 PREF SDIGS 03
1234. ENTER
.0001 +
The second line displays 1234 as a real in your current display format, but the third shows 1230. This betrays the fact that SDIGS does not take effect on every operation, but only at key points like addition and subtraction.10 Pressing ENTER is not one of these truncation points.
It is important to realize that lowering SDIGS is potentially destructive: if it drops digits deemed “insignificant,” subsequently raising this setting will not bring these lost digits back, as does occur with SIG mode. It may be possible to retrieve them via the R47’s single-level undo function or by calling LAST𝑥, but once those registers are overwritten by a later calculation, those lost digits are gone forever.
Why would anyone want to put the R47 into such a mode? Primarily to mimic a lesser machine:
- 10 brings it closer to the behavior of an HP Voyager-era machine like the HP-11C
- 12 to a Saturn-based machine like the HP-32S
- 16 to a PC running decNumber in 64-bit storage mode
For a less dangerous alternative, see my discussion of real number rounding.
Fraction Display
The next row up (🟧) in the R47’s DISP menu is devoted to controlling how it displays fractions. Its power in this regard is competitive with the textbook display features of modern school calculators, blowing away classic HP efforts on this front while retaining the utility of RPN. R47 owners no longer need to put up with plasticky Casio Classwiz or TI Mathprint cheapies to get decent fraction handling.
🟧 FRACT: Setting this will attempt to show decimal values as fractions, where possible. For instance, entering
0.375and hittingENTERwill show ⅜ as long as all the other defaults remain untouched.🟧 IRFRAC: Enabling this disables
FRACTmode11 and allows irrational numbers like 0.3̅ to be shown as a fraction, ⅓ in this case.This is, strictly speaking, non-mathematical since the sense of the word “irrational” relevant to us here is “cannot be expressed as a ratio of whole numbers.” ⅓ is rational, but the reciprocal of the underlying floating-point representation of 0.3̅ is irrational for the simple fact that we cannot store an infinite number of threes given the finite space available within the R47.
Yet, one with any mathematical sense at all knows what is meant in cases like this. When one of these calculated approximations is close enough to be shown as a fraction within the configured limits,
IRFRACmode allows the R47 to do the right thing.🟧 PROPFR: While this is enabled, the R47 will attempt to show results as “proper” fractions. That is, 1.375 will show as 1 ⅜ instead of ¹¹⁄₈.
🟧 DMX: This is the Denominator MaXimum, the limit beyond which the R47 will not go. The default of 64 has nice properties, making it one of two top candidates for the best 2-digit default. It is an excellent choice for:
- computer math, being based on powers-of-2
- imperial measurements, which typically top out at sixty-fourths
- similar halvings-and-doublings schemes over on the metric side like ISO paper sizes
The other 2-digit candidate for best general-purpose DMX value is 60. It has the primary virtue of being the basis of human timekeeping and degree-of-angle measurement systems, chosen because it has the most factors of any 2-digit number: 10 vs the 5 factors of 64, not counting 1 and the number itself.
The main problem with using 60 for
DMXis that the reciprocals of half its factors — {3, 6, 12, 15, 30} — are irrational in the R47’s real representation, requiring that one enableIRFRACto get any value from them. Per above, this is a non-mathematical choice, making it an untenable default for a calculator that prides itself on precision. With only five fraction-friendly factors left — {2, 5, 4, 10, 20} — it becomes a push with 64, leaving us with a tough decision.These facts may then lead us to ask about the least common multiple of 20 and 64, giving us another defensible choice in 320. Fortunately, the numeric methods within the R47 are smart enough not to test every possible one of those 320 denominators with an expensive 128-bit real division operation. When the
DENANYflag is unset, it does that only for the 14 factors of 320:{1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160, 320}Stepping up to DMX=960 to cover the factors of both 60 and 64 adds these possible denominators:
{6, 12, 15, 24, 30, 48, 60, 96, 120, 192, 240, 480, 960}We find ourselves on the doorstep of 1000, a fine DMX value when dealing in analog metric measurements,12 which rarely go beyond 3 solid digits of precision.
Fine Number Formatting Details
That brings us to the top row (🟦) of the R47’s DISP menu where the first three items bring up further customization sub-menus.
Selecting one of the predefined locales overrides everything set via the menus below on a one-time basis, as does the DFLT mode, which gives the C47/R47 team’s collective idea of “best” settings. The R47 subsequently allows ad hoc customization:
🟦 IPART: The integer part, broken up by spaces into groups of three, by default. I greatly prefer the classic HP choice,13 being from the US, giving me a lifelong familiarity with comma as a thousands separator.
🟦 RADIX: This menu not only gives you the classic HP options of a dot or comma as the radix mark, you also have the option of a “waist” level dot, plus options for fixed-width versions of these three. Being a USian, I prefer the proportional-width radix dot — first option,
PER.— but please yourself.🟦 FPART: The selection options here are nearly the same as for
IPART, with minor changes in offered choices as suits the change in purpose here, affecting the fractional part of the number. Here, I like the🟦 NSPC␣option: narrow space. The R47 defaults to the regularSPC␣which I deem wastes too much…um…space!
(You may now wish to return to my R47 article index.)
License
This work is © 2025-2026 by Warren Young and is licensed under CC BY-NC-SA 4.0
- ^ In HP speak, “FP” always meant “fractional part,” not “floating-point” since HP used an old-school variant of BCD. While the R47 uses a modern, standardized format better called decimal floating point, we can still speak of the fractional part of a number with exactitude because this improved format retains the virtues of HP BCD.
- ^
Under
ENGandUNIT, it may also affect the integer part, but the rule’s key fact remains. - ^ The R47 always displays integers in full precision given sufficient display space.
- ^
…and
SCI .1is justly ignored. Yay! - ^
You can add the R47’s length-limited
ALLmode to that list, too. - ^
I see “0.123 0” on my R47 here in
DFLTdisplay mode. We characterize that as four digits and not five because the zero before the radix is insignificant; “.123” means the same thing. Trailing zeros after the radix are a different matter. They are always significant by the very fact of being optional, thus arguably meaningful when purposefully included. - ^ A wrong-headed one, by my lights, but when I proposed that it be fixed, I came away with the impression that it is far too late in the development process to expect this behavior to change. We therefore proceed with what we have been gifted by the C47/R47 team and its forebears, going back to the famous WP34s, where this questionable implementation originated. Even if we agree that this behavior is imperfect, a fair judge must agree that this behavior is consistent, thus learnable.
- ^
Defined here as one which does not implicitly claim more accuracy in its user interface than its measurement design is able to produce. This was a more common problem back when Hewlett-Packard was founded, and it is one of the reasons they succeeded as a test & measurement company before expanding first into calculators, then computers. Yet despite decreasing quality levels elsewhere, a modern cheapie DMM often runs circles around older ones on a basic accuracy level, and I do not merely mean a digits-per-dollar basis. This foundation allows a quibbler’s modification to the simple rule of thumb above: set the
SIGlimit to the number of digits on the display minus one unless you know for a fact the instrument cannot meet its implied accuracy, even after taking into account the final digit uncertainty and the R47’s n+1 rule inSIGmode. - ^ The underline is one way to indicate the last significant digit when you have trailing zeroes before the radix. “120” is otherwise ambiguous: it could mean 2 or 3 significant digits. Another common convention is to write “120.” without a further zero to indicate 3 solid digits, but without the radix, the ambiguity remains.
- ^
grep -wslR significantDigits ~/src/c47/src/c47/mathematics - ^
…as of firmware v00.109.03.00b1, where enabling
FRACTmode conversely disablesIRFACmode - ^ This includes cases like printed circuit board layout, where pin pitches are often measured in mils for historical reasons. The too-commonly seen 2.54 mm pin pitch spec is a facile metricization of 0.1 inch pitch, 100 mils. I am a metric fan myself, but retconning is a practice best left to comic books.
- ^ HP always had the best commas on their fixed-segment LCDs. 🤓 A low resolution dot matrix display like on an HP-28S or a DM15 cannot help but produce stubby, ugly tick marks for “commas,” whereas the R47’s high resolution display approaches the beauty of old HPs like the Voyagers and the HP-20S.