You'll need to use the format when you convert the number to a string, not just in the data table's column display:
char(12345678901234567890,40,20)
/*:
"12345678901234567168.0000000000000000000"
or
char(12345678901234567890,30,0)
/*:
"12345678901234567168"
You might also want to use the format function and be explicit about the format. I'm not sure what rules char() is using above.
Craige