gpt4 book ai didi

c++ - 保护 C++ 变量免于溢出?如果值小于任何数据类型的 UpperBound

转载 作者:行者123 更新时间:2023-11-28 07:30:00 25 4
gpt4 key购买 nike

我想保护我的变量免于存储溢出值。

我正在计算树中每个级别和某些阶段的损失。

  1. 它给出类似 4.94567e+302 的值;这个值正确吗?如果我将它(如最小值、最大值等)与任何其他值进行比较。它会给出正确的答案吗?
  2. 有时它会给出否定答案,但公式不能给出负值,所以这种值肯定是错误的

我想在我的 C++ 代码中做以下事情。

例如:

long double loss;  //8 Bytes Floating Number
loss=calculate_loss();

if(loss value is greater than Capacity)
do
store 8 bytes in loss abd neglect remaining;
end if

最佳答案

如果您的容量应限制为 double (或浮点型)数据类型的最大或最小容量,您可以使用浮点异常(不要与 C++ 异常混淆)。需要在编译器选项中启用它们的信号,您可以将它们映射到检测数据类型溢出的 C++ 异常。

这是一个 msdn 页面,它很好地描述了 FP 异常。在页面底部,您将找到如何将其映射到 C++ 异常的示例。 http://msdn.microsoft.com/en-us/library/aa289157%28v=vs.71%29.aspx

关于c++ - 保护 C++ 变量免于溢出?如果值小于任何数据类型的 UpperBound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17914499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com