<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 微软雅黑; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
<div><span></span>Hi Arne,</div><div><br></div><div>Thanks a lot for the information! &nbsp;I will probably use "integer" to solve the problem. &nbsp;But I was really curious why the floating point number returns "210200048", not "210200049"... the perfect case would be that it returns "210200051".</div><div><br></div><div>Thanks again.</div>
<div><br></div><div>Hongyan</div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>danghy@gmail.com</div></div></span></div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;"><div>&nbsp;</div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b>&nbsp;<a href="mailto:arne.melsom@met.no">Arne Melsom</a></div><div><b>Date:</b>&nbsp;2015-07-20&nbsp;17:27</div><div><b>To:</b>&nbsp;<a href="mailto:danghy@gmail.com">danghy</a></div><div><b>CC:</b>&nbsp;<a href="mailto:ncl-talk@ucar.edu">ncl-talk</a></div><div><b>Subject:</b>&nbsp;Re: [ncl-talk] unexpected results from very simple code</div></div></div><div><div>Hi Danghy,</div>
<div>&nbsp;</div>
<div>I think that you can't expect (4 byte) floating point numbers to deliver the accuracy (no. digits) that you request. In your case, I suggest using double precision or integer representation. Here's a part of your example using the original representation and the two alternatives:</div>
<div>&nbsp;</div>
<div>begin</div>
<div>&nbsp;</div>
<div>a=210200051.</div>
<div>print("output / a :")</div>
<div>print(tostring(a))</div>
<div>print(sprintf("%9.0f",a))</div>
<div>&nbsp;</div>
<div>ad=210200051.d</div>
<div>print("output / ad:")</div>
<div>print(tostring(ad))</div>
<div>print(sprintf("%9.0f",ad))</div>
<div>&nbsp;</div>
<div>ai=210200051</div>
<div>print("output / ai:")</div>
<div>print(tostring(ai))</div>
<div>print(sprinti("%9i",ai))</div>
<div>&nbsp;</div>
<div>end</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>...which gives the following output:</div>
<div>&nbsp;</div>
<div>(0)        output / a :</div>
<div>(0)        210200048.000000</div>
<div>(0)        210200048</div>
<div>(0)        output / ad:</div>
<div>(0)        210200051.000000</div>
<div>(0)        210200051</div>
<div>(0)        output / ai:</div>
<div>(0)        210200051</div>
<div>(0)        210200051</div>
<div>&nbsp;</div>
<div>Hope this helps!</div>
<div>Arne M.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>----- Original Message -----</div>
<div>&gt; Dear all,</div>
<div>&gt; </div>
<div>&gt; I met a problem when reading "station ID" - I've simplified the code as</div>
<div>&gt; follows:</div>
<div>&gt; </div>
<div>&gt; load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"</div>
<div>&gt; load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"</div>
<div>&gt; load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"</div>
<div>&gt; begin</div>
<div>&gt; </div>
<div>&gt; degrees = (/210200051, 121, 36, 43,38,58,26/)</div>
<div>&gt; </div>
<div>&gt; print(sprintf("%9.0f",degrees(0)))</div>
<div>&gt; print(tostring(degrees(0)))</div>
<div>&gt; </div>
<div>&gt; a=210200051.</div>
<div>&gt; print(tostring(a))</div>
<div>&gt; print(sprintf("%9.0f",a))</div>
<div>&gt; </div>
<div>&gt; end</div>
<div>&gt; </div>
<div>&gt; The NCL output on screen is:</div>
<div>&gt; </div>
<div>&gt; ncl test.ncl</div>
<div>&gt; Copyright (C) 1995-2015 - All Rights Reserved</div>
<div>&gt; University Corporation for Atmospheric Research</div>
<div>&gt; NCAR Command Language Version 6.3.0</div>
<div>&gt; The use of this software is governed by a License Agreement.</div>
<div>&gt; See http://www.ncl.ucar.edu/ for more details.</div>
<div>&gt; (0) 210200048</div>
<div>&gt; (0) 210200051</div>
<div>&gt; (0) 210200048.000000</div>
<div>&gt; (0) 210200048</div>
<div>&gt; </div>
<div>&gt; Only the second method "tostring" gives the correct station ID. Could you</div>
<div>&gt; please give me a clue why is this happening?</div>
<div>&gt; </div>
<div>&gt; Appreciate!</div>
<div>&gt; </div>
<div>&gt; </div>
<div>&gt; danghy@gmail.com</div>
<div>&gt; </div>
<div>&gt; _______________________________________________</div>
<div>&gt; ncl-talk mailing list</div>
<div>&gt; ncl-talk@ucar.edu</div>
<div>&gt; List instructions, subscriber options, unsubscribe:</div>
<div>&gt; http://mailman.ucar.edu/mailman/listinfo/ncl-talk</div>
<div>&gt; </div>
</div></blockquote>
</body></html>