See more on web and documentation of FPC and variable types; here suffice to say that Single was used instead of real to make it platform independent. Single offers sufficient range for the NN4 intended purpose and is smallest “real” representation in memory (e..g think speed and memory consumption).

in NN4, i also use either 4 or 8 decimal point representation. This can easily be changed and recombined but from experiments and for columns to nicely align one of these two seems to be most useful. Examples are 0.0001 and of course 0.00000001.
As for integer, for loops, reading in data file lines and counting them, etc, i chose word. But can easily extend to Qword. See below. From experiments so far, i only needed qword for max number of cycles while learning and how often to dispaly on screen the progress. e..g i could chose learning to be configured to max cycles 1 million (and dispaly every 100,000 cycles – again would need qword.

Final variable type often used is pascal’s string, and free pascal has a number of choices. I needed string for assembling display to screen and of course to read and write to file. I chose, for weights, to write as single text line all weights in given layer, and only then send CR (Carriage Return). This i found to have a limit in Free pascal, see in Free Pascal Documentation. Suffice to say here i set ANSI limit to 256k which creates some limitations to text line read of disk. Meaning weights line, if shown in precision of 4 digits, e.g. 0.0001 on small side and on big side can be for example -27.0001 means, 8 character spaces plus one to separate are consumed per weight. 256k / 8 yields about 32k weights between layers. if input layers are 2K that means NN4 model can not have more then 16 hidden layers (root of 32K is 178 nodes). Good news is ANSI max can be changed and recompiled but i have yet to find the max.
There is probably benefit to change how NN4 stores weights to disk / file by sending CR after one neuron on left to all neurons on right set of weights. that will dramatically improve the maximum network size. And indeed set max size to larger then 256K – but as said there must be some limit but i am yet to spend time to find it.