当前位置: 首页 > 知识库问答 >
问题:

查询中的双重值出现在c#中xml中的科学符号中

易昌翰
2023-03-14

我正在修改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个月),查询返回ex.0.33,对于db值90,返回3。

xml文档返回3.300000000000000e-001 10天,3.000000000000000e 000 90天。

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

附言:我知道每个月的天数各不相同,但这与我们计算的方式无关。我们把它当成每个月有30天。

共有1个答案

赏开宇
2023-03-14

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

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

猜测一下,当数据被解析为xml时,它会检测到两种不同的数据类型,并将其转换为支持这两种数据类型的科学符号。

 类似资料:
  • 问题内容: 我有一个包含一些数据的JSON对象,我想获取每次出现的特定键名的所有值。是否有任何预定义的方法来搜索JSON对象中所有出现的键或需要编写用户定义的方法? 样本杰森 问题答案: 可以使用LINQ to JSON通过使用具有递归路径的方法来实现 参考文献: Json.NET-文档-解析JSON Json.NET 6.0版本1-JSONPath和F#支持 JSONPath表达式

  • 但我想, 没有任何符号的完整数字。 我使用、等尝试了所有置换。 我已经读过: 如何避免双倍的科学符号? 设置双倍格式且不舍入

  • 作为一个修正,我添加了新的Bigdecimal,它可以很好地工作到10-12位数字,而不是大数字。 这与双倍值不同。需要一个解决方案,打印正确的数字为双至25位。

  • 我搜索了一下,但我只找到了如何在没有科学符号的情况下减少数字(所以它最终会像一样,因为数字很小)。

  • 问题内容: 好,所以我有两个桌子。表1具有参考数字列(A),第二列具有随机字符串(B)。表2只有一列,其中列出了可能在表1的字符串中也可能不在字符串中的值。 dbo.Tbl_1 dbo.Tbl_2 哪种SQL查询将确定在Table1的字符串中找到Table2的值的次数是多少?基本上我想返回以下结果集: 仅供参考:实际上,表2具有大约200条唯一记录。表1记录了约160万条记录,并带有唯一的参考号。

  • 问题内容: 我刚刚开始在SQL Server数据库中查询XML。我在使用最基本的查询时遇到了麻烦。这是一个简化的示例。如何返回说明?下面的SELECT语句是我正在使用的内容,但未返回任何内容。 这是我正在使用的XML文件的代码段: 问题答案: 好吧,您错过了XML名称空间!:-) 试试这个: 魔术是 在此部分-它声明了对该XML数据进行查询期间的名称空间(带有您选择的前缀-可以是任何内容-在这里为