Hi all :-)

It's been nine days and nine years since the original print library was finally 
replaced by my version. I remember, I've said then, that I would also do the 
format library soon. I feel like it's about time now...

So, usually when I start thinking about improvement, I'm focused on mimicking 
the current behavior as close as possible. Yet... This is what it currently 
does:

format_sdword(output,12345678, 6,0) ->     5678
format_sdword(output,12345678, 7,0) -> �45678
format_sdword(output,12345678, 7,1) -> �4567.8
format_sdword(output,12345678, 8,0) -> C345678
format_sdword(output,12345678, 8,1) -> C34567.8
format_sdword(output,12345678, 8,2) -> C3456.78
format_sdword(output,12345678, 9,0) -> 12345678
format_sdword(output,12345678, 9,1) -> 1234567.8
format_sdword(output,12345678, 9,2) -> 123456.78
format_sdword(output,12345678,10,0) ->  12345678
format_sdword(output,12345678,10,1) ->  1234567.8
format_sdword(output,12345678,10,2) ->  123456.78
format_sdword(output,12345678,11,0) ->   12345678
format_sdword(output,12345678,11,1) ->   1234567.8
format_sdword(output,12345678,11,2) ->   123456.78
format_sdword(output,12345678,12,0) ->   12345678
format_sdword(output,12345678,12,1) ->   1234567.8
format_sdword(output,12345678,12,2) ->   123456.78
format_sdword(output,12345678,13,0) ->   12345678
format_sdword(output,12345678,13,1) ->   1234567.8
format_sdword(output,12345678,13,2) ->   123456.78

The third parameter, said to give the field length to be used, is quite limited:

1) The actual length differs, depending on the presence of a decimal point
2) Length greater than 11 is treated as 11
3) Too short a field leads to corruption of the number, always reserving places 
for sign and decimal point

3) probably can't be of any use - here's the question if the number should be 
truncated or replaced by error signs to show that something's wrong.

For 1) and 2), there's a possibility that existing programs rely on this 
behavior. But, as those are 'undocumented "features" ', I feel like they can be 
replaced by more useful things. Like, fields can be as long as 255 characters, 
and the number is truly right-aligned, if it has decimals or not.

If the number of decimals is greater than the field lengt-1, it is treated as 
zero. Here's another option to fill: what should be done if both numbers are 
nearly-equal, equal or the decimals number greater than the field length? 
Left-aligned, ignoring the field length?

Any preferences anyone? 

Greets,
Kiste

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/2110995783.3397177.1608638352475%40mail.yahoo.com.

Reply via email to