相关疑难解决方法(0)

为什么通过字符串进行的往返转换对双重不安全?

最近我不得不将双序列化为文本,然后将其取回.该值似乎不相等:

double d1 = 0.84551240822557006;
string s = d1.ToString("R");
double d2 = double.Parse(s);
bool s1 = d1 == d2;
// -> s1 is False
Run Code Online (Sandbox Code Playgroud)

但根据MSDN:标准数字格式字符串,"R"选项应该保证往返安全.

往返("R")格式说明符用于确保转换为字符串的数值将被解析回相同的数值

为什么会这样?

c# precision double tostring

184
推荐指数
2
解决办法
9125
查看次数

如何确定 JSON 数据内容是否相同?(计算 JSON 哈希?)

如果我有两个 JSON 文件/表达式,我如何确定 JSON 的数据内容在功能上是否相同?

即比较应该忽略语法,如:

  • 所有空格/换行符(字符串之外)。
  • 对象成员的排序。
  • 等效的 unicode 字符(例如 \u0041 = A)。

我知道需要某种 JSON 解析器,但我不知道我的选择。我的数据在 SQL 服务器上,所以我可以直接使用 SQL JSON 函数和 SSIS 脚本组件 (C#/.Net)。

或者:有没有办法计算 JSON data-content 的哈希值,在计算哈希之前是否有最小化/统一 JSON 表达式的标准。

编辑:JSON 架构未知且未修复。

.net c# sql-server json ssis

0
推荐指数
1
解决办法
1085
查看次数

标签 统计

c# ×2

.net ×1

double ×1

json ×1

precision ×1

sql-server ×1

ssis ×1

tostring ×1