Incorrect displaying of large numerics

General warning that the runtime doesn’t display large numbers correctly depending on the picture.
In this example, the entry fields all have the same USE variable that is a decimal 20,2 with a value of has 10055304085524.01. Then value displayed is correct with @n-20.2, @n-19.2 and @n-18.2. The formatting characters are removed but the number is still correct. @n-14.2 correctly displays ####s indicating the number doesn’t fit the format.
However, @17, 16 and 15 display a number that is not the correct value which could be very misleading.
This is confirmed still an issue in C9.1 → C11.1. It was actually worse in C7 and C8. All of the pictures @20->@15 displayed incorrectly.
This has been reported and confirmed by SoftVelocity.
Here is a sample program demonstrating the issue:

  PROGRAM


  MAP
  END
Entry1                        Decimal(18,2)
String1                       string(25)
Window              WINDOW('Caption'),AT(,,242,178),GRAY,FONT('Segoe UI',11)
                        STRING(@S25),AT(23,10),USE(String1)
                        PROMPT('Picture @n-20.2'),AT(23,22,60,13),USE(?PROMPT1)
                        ENTRY(@n-20.2),AT(90,23),USE(ENTRY1,, ?ENTRY1)
                        PROMPT('Picture @n-19.2'),AT(23,37,60,13),USE(?PROMPT1:2)
                        ENTRY(@n-19.2),AT(90,38),USE(ENTRY1,, ?ENTRY1:2)
                        PROMPT('Picture @n-18.2'),AT(23,52,60,13),USE(?PROMPT1:3)
                        ENTRY(@n-18.2),AT(90,53),USE(ENTRY1,, ?ENTRY1:3)
                        PROMPT('Picture @n-17.2'),AT(23,68,60,13),USE(?PROMPT1:4)
                        ENTRY(@n-17.2),AT(90,68),USE(ENTRY1,, ?ENTRY1:4)
                        PROMPT('Picture @n-16.2'),AT(23,84,60,13),USE(?PROMPT1:5)
                        ENTRY(@n-16.2),AT(90,84),USE(ENTRY1,, ?ENTRY1:5)
                        ENTRY(@n-15.2),AT(90,99),USE(ENTRY1,, ?ENTRY1:6)
                        PROMPT('Picture @n-15.2'),AT(23,98,60,13),USE(?PROMPT1:6)
                        PROMPT('Picture @n-14.2'),AT(23,113,60,13),USE(?PROMPT1:7)
                        ENTRY(@n-14.2),AT(90,114),USE(ENTRY1,, ?ENTRY1:7)
                        BUTTON('&Close'),AT(95,154,41,14),USE(?OkButton),STD(STD:Close),DEFAULT
                    END
  CODE
  Entry1 = 10055304085524.01 
  String1 = Entry1
  open(Window)
  accept
  end
  close(Window)

4 Likes