字符串加倍:最大/最小有效转换

时间:2015-11-29 06:04:24

标签: c++

我正在编写一些单元测试,用于使用C ++的std :: stod()函数将字符串转换为双精度数。但是,我无法找到转换抛出std :: out_of_range异常的最小/最大限制。我一直在网上搜索。

要转换的字符串仅由数字组成,恰好是一个句点,前面可选为减号。没有指数,NAN等。示例:999.1278,-999.1277

我正在寻找以下信息:

  1. 可以转换的最大双值ok,其中句点的右侧为0.示例:999876.0
  2. 最小数字传递最大数字(如上面的#1中所示),这会导致抛出std :: out_of_range异常。示例:99987603.0
  3. 可以转换的最小双值ok,其中句点的左侧为0.示例:0.999876
  4. 最小数字传递最小数字(如上面的#3中所示),这会导致抛出std :: out_of_range异常。示例:-0.99987603
  5. 如果可能,其他已知限制。例如,随着期间左/右侧的值增长和缩小,新的最小/最大值是多少?
  6. 我不知道这是多么可行,特别是#5,因为双打的浮点性质。

    作为参考,我能够很容易地用整数做到这一点。这些是int64_t转换的字符串:

    1. 9223372036854775807
    2. 9223372036854775808
    3. -9223372036854775808
    4. -9223372036854775809

0 个答案:

没有答案