In the era before UK currency was decimal, how were accounting calculations involving pounds, shillings, and pence typically handled?
By mostly the same machinery as in other countries - only some sprockets added like this nice Brunsviga 90T shows:
(From Wikipedia, see also this answer)
It may need a close look at display and key columns as the last column goes 1 to 11, while the third from the right only features the number 1 on all keys.
British Pre-Decimal currency was, like all Carolingian currency, structured as LSD or 1 Librae (hence the £) to be split into 20 Solidi (s) each dividable into 12 Denari (d) or in English names 1 Pound equals 20 Shillings equals 240 Pence.
This is why the display, as well, is structured as 3-3-2-1:
- 3 digits for Thousands of Pounds,
- 3 digits for Pounds,
- 2 digits for Shillings (00..19), and
- 1 'digit' for Pence (0..11)
Such variant machinery was as well created with early data processing like IBM's 1934 type 801 (*1) check proof machine, available as well in a Sterling version (*2).
(803 in operation, taken from this blog)
Of course there were as well electronic LSD calculators. A great example might be the Anita Mark 10 which in addition could convert between LSD and decimal.
Were the underlying computations typically performed in terms of decimal fractions of pounds, in binary or decimal integer multiples of pence (or farthings!),
No, no Farthings and no Guineas (*3) either. Bookkeeping was only done in Pounds, Shillings and Pence. When recording of Farthings was required, they were done as fractional Pence, like 11¾p (*4). That's also the reason why the linked COBOL manual reminds users to take care of possible fractional pence - something that comes to be if Farthings are handled.
or by keeping track of pounds, shillings, and pence as binary or decimal integers?
Yes - all of them. In the end it depends as much on application as on hardware (and language runtime). Converting everything to pence and converting back for display and output purpose was as common as having three dedicated fields handled separat - or with some computers it was possible to handle a dedicated sterling data type, often a variant of the decimal (BCD) type but handling carry accordingly to LSD structure (*5). This includes modified micro programs for standard mainframes.
The most well known example with hardware operating on LSD might be 1960s ICT 1300 series.
Another interesting example is shown by the English Electric Deuce series:
(From Wikipedia *6)
While not operating directly on LSD, it could execute complex divisions and multiplications with insertion and removal of elements during operation, a feature that allowed conversion between LSD and Pence (and back) in a single assembly instruction. Somewhat similar to a PACK/UNPACK operation for converting EBCDIC or ASCII to BCD. In fact, that operation is so unusual that it might as well have been created especially for that purpose.
My research so far has only found one useful reference, and IBM System 360 Cobol specification that seems to say that computations were performed in pence and then output in pounds, shillings, and pence with a special formatting "PICTURE" See pages 117-118 at
Not sure. To me this reads as if done by using dedicated decimal field for each unit.
*1 - No, that's not the 801 processor, the father of all RISC. IBM did reuse the number :))
*2 - Interesting side note, the follow up 803 was sold all the way until 1981 - about the time when even the slowest moving US bank would switch to digital handling
*3 - Guineas were as well not recorded as such, but as one pound and one shilling or 21 shillings (Equivalent to £1.05 in decimal notation).
*4 - 11 Pence and 3 Farthings was the Victorian equivalent of today's 9.95 pricing - a Farthing short of a Shilling to make it look less.
*5 - This is especially true with early 18/36 bit machines using 6 bit characters. Here BCD arithmetic was often done using one digit per 6 bit char, which directly corresponds how punch cards (the most common source for data) were read. This allowed to hold pence (0..11) as well as shilling (0..19) as a single 'BCD' digit - which in turn directly corresponds to the way the GB standard (BSI) encoding for Sterling on punch card was done. Nicely mentioned on p.114 of the linked document.
*6 - What a massive beauty - that's what a real computer has to look like :))