<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1521622899;
mso-list-type:hybrid;
mso-list-template-ids:-2140480162 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>And it's damn hard to convert an array of strings … <o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Usually find a Float(string) function. <o:p></o:p></p><p class=MsoNormal>Then there probably is a string(float) conversion.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think this is what happened to the excess resolution feature, is that we go string to float, then that float back to string to build user code and leave the 18 decimal digits hanging on there. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Joe<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Monday, December 5, 2022 10:33 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joe D Williams</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:h-anim@web3d.org">Humanoid Animation (H-Anim) Working Group</a><br><b>Subject: </b>Re: JSON Serialization to Bindings what can precision can we get?</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>The hardest part is we currently convert JSON to Node.js using parseObject, we get an array of Strings. And it's damn hard to convert an array of strings to an array of float or double. Perhaps we should look into what NodeSerializer.js does?</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Too tired. New meds are bowling me over.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm guessing I can improve things. adding my own type conversions in arrays. Not now.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John</p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Mon, Dec 5, 2022 at 10:27 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><div><div><p class=MsoNormal style='margin-left:4.8pt'>AFAIK, these are the suffixes we can add to double and float numbers.</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>Please feel free to correct, and I will update code.</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>Since JSON is not a binding, I have chosen not to include it. Indeed, there is no available suffix in JSON (yet) for floats and doubles.</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>Joe, I suggest you find a formatter for the source language in question, like printf in C.</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>If we can collect ways to format in various languages, we'll need some standard ways of using the formatter in the "exporter."</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>I've done my show for today. except for looking up formatters for JavaScript.</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:4.8pt'>$ grep const.*SUFFIX *.js</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>CppSerializer.js:const DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>CppSerializer.js:const FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>CSerializer.js:const DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>CSerializer.js:const FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>JavaSerializer.js:const DOUBLE_SUFFIX = 'd';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>JavaSerializer.js:const FLOAT_SUFFIX = 'f';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>PythonSerializer.js:const DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>PythonSerializer.js:const FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>VRMLScriptSerializer.js:const DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>VRMLScriptSerializer.js:const FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:4.8pt'>$ grep "var .*"SUFFIX *.js</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>DartSerializer.js:var DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>DartSerializer.js:var FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>ECMAScriptSerializer.js:var DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>ECMAScriptSerializer.js:var FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>JavaScriptSerializer.js:var DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>JavaScriptSerializer.js:var FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>NodeSerializer.js:var DOUBLE_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>NodeSerializer.js:var FLOAT_SUFFIX = '';</p></div><div><p class=MsoNormal style='margin-left:4.8pt'>X_ITESerializer.js:var DOUBLE_SUFFIX = '';</p></div></div></div></div></div></blockquote></div><p class=MsoNormal style='margin-left:4.8pt'>X_ITESerializer.js:var FLOAT_SUFFIX = '';</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>