来自查询的双精度值以科学计数法出现在 c# 的 xml 中

Double values from query appear in scientific notation in xml in c#

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

此查询 returns 列有时是十进制数(精度 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();

基本上,ex 的查询 returns。分贝值 10 为 0.33(10 天 = 0.33 个月),分贝值 90 为 3。

xml 文档通过 returns 3.300000000000000e-001 10 天和 3.000000000000000e+000 90 天。

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

PS:我知道每个月的天数不同,但这与我们进行计算的方式无关。我们把它当作每个月有 30 天。

我还没有完全弄明白,所以欢迎其他答案,但我确实解决了问题。

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

只是一个大胆的猜测,可能是当数据被解析为 xml 时,它检测到两种不同的数据类型并将它们转换为科学记数法以支持两种数据类型。