Bug #5294
closedto_f does not convert floating point number the same as Fortran
Description
We were converting some Fortran programs to Ruby, and found the following floating point number format did not convert as Fortran does on input, i.e., on:
'[+-]nn.E[+-]nn'
the exponent is ignored by to_f, but not by Fortran:
string: '9.E+20 ' float: 9.0000000000000000000000000
string: '+9.E+20 ' float: 9.0000000000000000000000000
string: '-9.E+20 ' float: -9.0000000000000000000000000
string: '9.E20 ' float: 9.0000000000000000000000000
string: '+9.E20 ' float: 9.0000000000000000000000000
string: '-9.E20 ' float: -9.0000000000000000000000000
string: '9.E-20 ' float: 9.0000000000000000000000000
string: '+9.E-20 ' float: 9.0000000000000000000000000
string: '-9.E-20 ' float: -9.0000000000000000000000000
Listed below, we found all other variations we could think of seemed to work properly:
string: '0.9E+21 ' float: 900000000000000000000.0000000000000000000000000
string: '+0.9E+21 ' float: 900000000000000000000.0000000000000000000000000
string: '-0.9E+21 ' float: -900000000000000000000.0000000000000000000000000
string: '.9E+21 ' float: 900000000000000000000.0000000000000000000000000
string: '+.9E+21 ' float: 900000000000000000000.0000000000000000000000000
string: '-.9E+21 ' float: -900000000000000000000.0000000000000000000000000
string: '9E+20 ' float: 900000000000000000000.0000000000000000000000000
string: '+9E+20 ' float: 900000000000000000000.0000000000000000000000000
string: '-9E+20 ' float: -900000000000000000000.0000000000000000000000000
string: '9.0E+20 ' float: 900000000000000000000.0000000000000000000000000
string: '+9.0E+20 ' float: 900000000000000000000.0000000000000000000000000
string: '-9.0E+20 ' float: -900000000000000000000.0000000000000000000000000
string: '0.9E21 ' float: 900000000000000000000.0000000000000000000000000
string: '+0.9E21 ' float: 900000000000000000000.0000000000000000000000000
string: '-0.9E21 ' float: -900000000000000000000.0000000000000000000000000
string: '.9E21 ' float: 900000000000000000000.0000000000000000000000000
string: '+.9E21 ' float: 900000000000000000000.0000000000000000000000000
string: '-.9E21 ' float: -900000000000000000000.0000000000000000000000000
string: '9E20 ' float: 900000000000000000000.0000000000000000000000000
string: '+9E20 ' float: 900000000000000000000.0000000000000000000000000
string: '-9E20 ' float: -900000000000000000000.0000000000000000000000000
string: '9.0E20 ' float: 900000000000000000000.0000000000000000000000000
string: '+9.0E20 ' float: 900000000000000000000.0000000000000000000000000
string: '-9.0E20 ' float: -900000000000000000000.0000000000000000000000000
string: '0.9E-19 ' float: 0.0000000000000000000900000
string: '+0.9E-19 ' float: 0.0000000000000000000900000
string: '-0.9E-19 ' float: -0.0000000000000000000900000
string: '.9E-19 ' float: 0.0000000000000000000900000
string: '+.9E-19 ' float: 0.0000000000000000000900000
string: '-.9E-19 ' float: -0.0000000000000000000900000
string: '9E-20 ' float: 0.0000000000000000000900000
string: '+9E-20 ' float: 0.0000000000000000000900000
string: '-9E-20 ' float: -0.0000000000000000000900000
string: '9.0E-20 ' float: 0.0000000000000000000900000
string: '+9.0E-20 ' float: 0.0000000000000000000900000
string: '-9.0E-20 ' float: -0.0000000000000000000900000
Thanks!
Todd Kushner
Jeppesen
todd.kushner@jeppesen.com