Decimal Background: Frrraction is mostly about exact numbers—fractions in the form of either "pure fractions" or "mixed fractions", also known as "stacked numbers" or, with a wry smile, "number sandwiches". But much of our experience is with approximate numbers in the form of two integers separated by a decimal point like 12.543 — disingenuously called "decimal fractions" (disingenuous because everything in Frrraction is decimal (it used to handle Roman numerals, but no more). A better term might be "flat numbers", since they lay flat along a line of text, rather than in a stack like the others. |
There are bridges between stacked fractions and decimal fractions. One of them is a really powerful thing Frrraction can do with decimal numbers, but first let's discuss the ordinaries.
↑ to Frrr103 MenuQuick version:
The decimal value of a result is shown in the Fdec cell beneath the integer part of the result.
Connections between decimal fractions and stacked fractions: One bridge between decimals and stacks shows up when you put Frrraction into mixed fraction mode and perform arithmetic or use the RDC function: The decimal number equivalent of the result is displayed in a cell called Fdec, located in the active fraction below the integer part Fint of the result. In the case of RDC, both F1dec and F2dec are displayed, no matter which was the active fraction that got reduced. But, calling Fdec the decimal number is misleading. To be accurate one should say, "a portion of the equivalent decimal number is displayed in Fdec." That's because decimal numbers are infinitely long. For instance, the stack 12 + 543/999 can be expressed as 12.543, 12.543543, 12.543543543, ... So all we can show is a finitely long leading portion of the decimal number. Likewise, when one says a decimal number is 12.5 the number they are talking about might be any of 12.5000, 12.54, 12.54300, and so on. The notation '12.5' tells you nothing about the omitted digits. |
Quick version:
Decimals have an infinite number of digits.
Sometimes most of them are 0. Sometimes not.
How many decimal digits?: If we're given a long decimal then all the shorter ones are definitely known. We just choose how many "significant digits" we wish. Those three decimal expressions for 12 + 543/999 in the previous Background had respectively 5, 8, and 11 digits. Given a decimal with many digits, we can specify a smaller number of digits and use one of two ways to perform the shortening: round or truncate. For example, say we have the 11-digit decimal version 12.543543543 of 12 + 543/999 and we want a 5-digit version. We can truncate at 5-digits by simply discarding all the portion to the right of the fifth, yielding 12.543. The other way is to round it off: Look at the fifth and the sixth digits; if the sixth is 0,1,2,3,or 4, leave the fifth unchanged, just truncate; but if the sixth is 5,6,7,8, or 9 then add 1 to the fifth, round up. In the present example, the 5-digit rounded version is 12.544 and the 6-digit version is 12.5435. |
Key idea
While you're entering a number into F1int,
doubletap-00 will enter a decimal point at the cursor location.
We can then refer to F1int as F1intD (decimal in int).
A path to decimals within Frrraction: Back to practicals. Another bridge between decimal and stacked is that, using the gesture "Doubletap-00" to create the decimal point, you can actually put a decimal fraction into the Integer cell of Fraction F1 then convert the decimal into a mixed stack for calculation. This is why the expression '.point' sits above Frrraction's 0-key in small white letters —to remind you of doubletap-00. Here's how it works:
|
Try it: To enter 12.543 you do: tap-1, tap-2, doubletap-00, tap-5, tap-4, then tap-3. As soon as you put the decimal point, notice that the Hints and Comments sections of the screen tells you that F1 is now totally defined by F1intD as a decimal fraction. The stack portion contains the indeterminate 0/0 to emphasize that the stack is irrelevant as long as F1 is decimal. Now tap any other fraction cell except F1intD, say F2den. F1 then contains the mixed fraction 12 + 543/1000 which is the standard stack for 12.543. |
More about Frrraction and decimals: Using the digit keys and BDel, you can edit the decimal fraction in F1intD as long as it remains the active cell. You can also STO and RCL the decimal form when F1 is the active fraction. If you RCL a decimal when F1 is active you can resume editing the decimal (tap F1intD if necessary). (If you RCL a decimal when F2 is active, you get an Indeterminate stack and F2int receives only the integer part of the stored decimal. F1intD is the only cell that can hold a decimal fraction to be edited or used by APRX.) If F1 contains a decimal fraction and you move the cursor to any other cell except F1intD, in either F1 or F2, F1 ceases being decimal; the decimal value gets automatically stacked in the standard (most direct but least efficient) way. For example, 12.543 becomes 12 + 543/1000. That's what most fractions Apps mean when they say they can "convert decimals to fractions." It looks "exact", doesn't it. But maybe "12.543" was just the first few digits of "12.543495732". Whatever. A way to accomplish this same thing without moving the cursor is to use the RDC-Reduce function. A way to get a better decimal-to-stack conversion is Frrraction's APRX function. Another way to undecimalize F1intD is to delete its decimal point, either by using the Clr button on the cell or by tapping the BDel key enough times to reach and delete the decimal point. In either case, F1's stack remains indeterminate 0/0. Frrraction's decimal fractions are handled internally in "single precision floating point" format and can handle at most 8 digits. The first 7 digits are quite reliable. The 8th can be off by 2 or more, i.e. 12345.676 might appear as any value between 12345.674 and 12345.678 or worse. |
Key idea
With the cursor in any cell except F1int
doubletap-00 converts the active stacked fraction to a decimal fraction
and puts it into F1int, which becomes F1intD.
00 copies Fdec to F1intD: Another use of the 00 (doubletap-0) gesture is to convert an existing stacked fraction — mixed ot pure, it doesn't matter — into a decimal fraction. The resulting decimal fraction goes into F1int — which thereby becomes F1intD. F1num/F1den is automatically set to the indeterminate symbol 0/0 to help indicate that, as always when F1 contains a decimal, the F1 stack has become irrelevant. This works whenever you need to convert stacks to decimals. One context where this conversion is often useful is during complex calculations. Fraction numerators and denominators tend to grow large. If you can stand the loss of perfect precision, you can 00 the offending stack and use APRX to find a better fraction to work with. The decimal form of the new stack of course agrees with the decimal form of the original up to 7-digit accuracy and that's often good enough. The "While You Wait" page on this site is a good example. |