c++ - 将一个 long double 存储在多个 double 变量中

标签 c++ json casting

我必须以 JSON 格式存储一个 long double 变量。 JSON 支持double 变量但不支持long double。然后我必须将 long double 值拆分为几个 double 值,但我不知道如何轻松地做到这一点。

我已经通过这种方式为 long long int 变量做到了:

std::vector<long int> long_long_int__to__long_int(long long int x)
{
  std::vector<long int> split;
  const unsigned long int n = sizeof(long long int) / sizeof(long int);
  for(unsigned long int i = 1; i < n; ++i)
  {
    split.push_back((long int)(x % (long long int)std::numeric_limits<long int>::max));
    x /= (long long int)std::numeric_limits<long int>::max;
  }
  split.push_back(x);
  return split;
}

知道如何使用浮点变量做到这一点吗?

最佳答案

这是我能想到的解决方案,它也适用于您的 long long int 问题。

  1. 考虑将任何类型存储为十六进制值数组,无论是 long long int 还是 long double。
  2. 选择一项Binary-to-text encoding算法并使用它将数组转换为可读字符串。
  3. 将字符串存储为JSON

关于c++ - 将一个 long double 存储在多个 double 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764724/

相关文章:

c++优先顺序 - 在乘法之前进行类型转换

java:将二进制字符串转换为int

c++ - 通过 unique_ptr 访问 std::array

c++ - 有没有办法在 gcc 4.5.2 编译器上使用 google 测试工具?

c++ - 如何阅读复杂的类型?

c++ - enable_if 继承的成员函数的名称查找错误

javascript - ng 重复 json 解析显示空字符串

javascript - 按 tagName 过滤元素

c - 如何将 void* 转换为 int[][3]

java - 如何使用 Java 手动展平 Elasticsearch 嵌套的 JSON 文档?