10 LET M=0
20 LET L=0
30 LET B=0
40 INPUT "GEWICHT IN KG "; M
50 INPUT "GROESSE IN CM "; L
60 LET L=L/100
70 LET B=M/L^2
80 PRINT "BMI = "; B
Then I started using PDP-8-Emulation and TSS-8:
10 LET M=0
20 LET L=0
30 LET B=0
35 PRINT "WEIGHT IN KG.G:"
40 INPUT M
45 PRINT "HEIGHT IN CM:"
50 INPUT L
60 LET L=L/100
70 LET B=M/L^2
75 PRINT "YOUR BMI IS:"
80 PRINT B
90 END
Are you sure that rounding was broken? Many systems use "Gaussian" or "banker's" rounding to reduce accumulation of rounding errors. Instead of always rounding to the next larger absolute value at .5, they round to the nearest even number. Although it introduces a bias toward even numbers in the result set, it reduces accumulation of error when .5 is as likely as as any other fraction and odd/even are equally likely in the source.
I was taught "banker's" rounding in school (graduated 1974) and have had to implement it a few times to reduce error accumulation.
If you are looking for a rabbit hole, Wikipedia has a pretty comprehensive article, including an example of how the wrong choice of rounding algorithm led to massive problems at the Vancouver Stock Exchange (Canada).
1 REM TEST YOUR INPUT AND THEN
10 PRINT "DO YOU EAT YOUR BOUGHS??"
20 INPUT X
30 IF X="YES" THEN PRINT "YOU PIG!.": END
40 IF X="NO" THEN PRINT "WHAT ARE YOU WAITING FOR TO TRY?"
50 END
This a Sharp BASIC suffler for the 40 spanish card deck, for truco and other games.
10:REM BARAJADOR MAZO DE 40 CARTAS ESPANOLAS,SHARP PC-1360
20:WAIT 0: CLS : CLEAR
30:DIM A$(41)*20,S$(0)*32,P$(0)*65
40:C=0:S$(0)="Basto Espada Oro Copas"
50:P$(0)="As Dos Tres CuatroCincoSeis SieteSota CaballoRey"
60:FOR S=1 TO 4
70:FOR N=1 TO 10
80:C=C+1
90:A$(C)= MID$ (P$(0),(N*5)-4,5)+" de "+ MID$ (S$(0),(S*8)-5,0)
100:NEXT N: NEXT S
110:FOR C=41 TO 2 STEP - 1:A= RND (40)+1:A$(C)=A$(A):A$(A)=A$(C-1): NEXT C: BEEP 1: WAIT
120:FOR C=1 TO 40: PRINT SRT$ (C);":";A$(C): NEXT C