Wolfram mathematica Mathematica-创建符号XML的问题

Wolfram mathematica Mathematica-创建符号XML的问题,wolfram-mathematica,Wolfram Mathematica,在mathematica应用程序中,我有一个OO系统对象,它表示一个长方体,如下所示: In[27]:= oscg@getItem[11]@getObject[] Out[27]= {"GE", {"CB", {{3., 0., 3.}, 0.9}}, {0.3}} toXml[]:= Module[ {ret, p=getPoint[] + getColref[]@absPoint[getMe[]], d=getDiameter[], h=g

在mathematica应用程序中,我有一个OO系统对象,它表示一个长方体,如下所示:

 In[27]:= oscg@getItem[11]@getObject[]

 Out[27]= {"GE", {"CB", {{3., 0., 3.}, 0.9}}, {0.3}}
 toXml[]:= Module[
{ret,
p=getPoint[] + getColref[]@absPoint[getMe[]], 
d=getDiameter[],
h=getHue[]},
ret=XMLElement["cuboid",{"point"->ToString[p], "diameter"->ToString[d], 
    "hue"->ToString[h]}, {}];
ret
];
我使用以下方法将此对象转换为Xml:

 In[28]:= oscg@getItem[11]@toXml[]

 Out[28]= XMLElement["cuboid", {"point" -> "{3., 0., 3.}", 
  "diameter" -> "9
  --
  10", "hue" -> "0.3"}, {}]
我在这里会想到:

 XMLElement["cuboid", {"point" -> "{3., 0., 3.}", "diameter" -> "0.9", "hue" -> "0.3"}, {}]
方法代码如下所示:

 In[27]:= oscg@getItem[11]@getObject[]

 Out[27]= {"GE", {"CB", {{3., 0., 3.}, 0.9}}, {0.3}}
 toXml[]:= Module[
{ret,
p=getPoint[] + getColref[]@absPoint[getMe[]], 
d=getDiameter[],
h=getHue[]},
ret=XMLElement["cuboid",{"point"->ToString[p], "diameter"->ToString[d], 
    "hue"->ToString[h]}, {}];
ret
];
问题是0.9变成了9--10

我考虑了一个格式问题,但是色调输出为0.3。(在读取Xml并将其解析回对象创建代码的阶段,问题变得至关重要。)

问题:
然而,这是否会成为一个格式、显示问题?(这是我在数学中不太熟悉的一个话题。)关于如何解决这个问题,有什么想法吗?你的直径很可能存储为一个有理数:

 In[1]:= ToString[9/10]
Out[1]:= 9
         --
         10
请注意,需要两个行尾代码才能将该分数打印为字符串


尝试
ToString[N@d]
ToString[N@h]
toXml[]中的
。您还可以使用
ToString[d,InputForm]
来获得有效的
9/10

!!非常感谢你。我通过计算点和直径生成了一系列立方体。这就是Mathematica必须将数字存储为分数的地方。不过,将分数输出为Xml是一种非常奇怪的方式。但我想应该是这样的。