查询中的双精度值在 c# 中以 xml 中的科学记数法显示



我正在修改 c# 中的代码,该代码从查询中检索数据并以 xml 格式显示。实际上,我正在修改查询,因为其余代码不应更改。

此查询返回一列,该列有时是十进制数(精度为 2),有时是整数。执行查询本身会给出正确的结果。

查询中的数据由下面的代码解析,以提供 xml。但是,在xml文档中,我得到的是整个列的科学记数法值。

代码:

database_connection = new SqlConnection(CONNECTION_STRING); 
command = new System.Data.SqlClient.SqlCommand(sql_query, database_connection);
command.Connection.Open();
document = new System.Xml.XmlDocument();
document.Load(command.ExecuteXmlReader());
list = document.GetElementsByTagName("time_in_months");
foreach (XmlNode elementToEncrypt in list)
{
elementToEncrypt.InnerXml = elementToEncrypt.InnerXml;
}
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
document.Save(Response.Output);
command.Connection.Close();
Response.End();

基本上,查询返回 db 值 10(10 天 = 0.33 个月)的 0.33,db 值 90 的

3。 XML 文档在 10 天内返回 3.30000000000000000e-001,在 90 天内返回 3.0000000000000000e+000。

我可以设定一个标准,所有值都是双倍的,但科学记数法是一个问题。不是 c# 程序员,我真的不确定类型的对话在哪里发生。

PS:我知道每月的日子会有所不同,但这在我们进行计算的方式中并不重要。我们把它当作每个月有 30 天。

我还没有完全弄清楚这一点,所以欢迎其他答案,但我确实解决了这个问题。

我将查询中的值转换为 varchar(具有合理的长度),现在这些值已正确显示。 查询执行仍会给出相同的结果,但 xml 数据的格式正确。

只是一个疯狂的猜测,当数据解析为 xml 时,它会检测两种不同的数据类型并将它们转换为科学记数法以支持这两种数据类型。

相关内容

  • 没有找到相关文章

最新更新