Re: problem string from double missing digits [message #36402] |
Thu, 11 September 2003 06:35  |
R.Bauer
Messages: 1424 Registered: November 1998
|
Senior Member |
|
|
James Kuyper wrote:
> Reimar Bauer wrote:
>
>> Hi all,
>>
>> did someone know what here is going on.
>>
>> IDL> d = 98046763.617D
>> IDL> s = string(d)
>> IDL> PRINT,s
>> 98046764.
>> IDL> HELP,s
>> S STRING = ' 98046764.'
>>
>> Where are the digits ????
>
> ...
>
>> Or does it mean I have first to determine the Format of the number and I
>> have to use this information to get the right number.
>
>
> If you don't like the default format, you do have to specify the
> particular alternative you wish to use. However, you don't have to be
> explicit:
>
> IDL> PRINT,string(d,FORMAT='(F)')
> 98046763.6169999990000000
>
> That's overkill, but at least you didn't lose anything. Coming from a C
> background, I personally prefer:
>
> IDL> PRINT,string(d,FORMAT='(%"%f")')
> 98046763.617000
>
> ...
This is exactly what I wanted to have. I missed to test C Formatting codes.
>
>> This goes right. But my feeling is this is terrible. Because I bet noone
>> takes care on this. What's your feeling?
>
>
> My feeling is that you'd lose your bet. Almost everyone who spends much
> time printing floating point numbers ends up sooner or later having to
> override the default formats.
I am not sure because many times it works for float. double makes the
difference.
Thanks
Reimar
--
Reimar Bauer
Institut fuer Stratosphaerische Chemie (ICG-I)
Forschungszentrum Juelich
email: R.Bauer@fz-juelich.de
------------------------------------------------------------ -------
a IDL library at ForschungsZentrum Juelich
http://www.fz-juelich.de/icg/icg-i/idl_icglib/idl_lib_intro. html
============================================================ =======
|
|
|