小编Jér*_*ton的帖子

为什么我们不能从浮点最大值中减去?

几天前,我试图减去10000 std::numeric_limits<float>::max(),我只是发现价值根本没有变化,无论我减去什么价值.事实上,似乎所有浮点类型都有这种行为.

例如(在g ++和msvc上),这个没有通过(好):

int i = std::numeric_limits<int>::max();
assert(i == i - 10000); // Doesn't pass
Run Code Online (Sandbox Code Playgroud)

但是这个(?):

float f = std::numeric_limits<float>::max();
assert(f == f - 10000.f); // Pass
Run Code Online (Sandbox Code Playgroud)

我甚至试图直接分配最大值(在这种情况下为3.40282e + 38),但它似乎没有改变任何东西.此外,它似乎与任何足够高的值完全相同.有人可以向我解释为什么会这样做吗?谢谢.

c++ floating-point

4
推荐指数
1
解决办法
133
查看次数

如何摆脱Visual Studio设计器抛出的"Out of memory"异常?

请考虑以下代码:

主表单模板模型:

public partial class CustomForm : Form
{
    public CustomForm()
    {
        InitializeComponent();
        DoubleBuffered = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

具体表格模板型号:

public partial class PopupForm : CustomForm
{
    public PopupForm()
    {
        InitializeComponent();
        BTN_Maximize.Hide();
    }
}
Run Code Online (Sandbox Code Playgroud)

派生形式:

public partial class SiteAccess : CustomForm
{
    public SiteAccess()
    {
        InitializeComponent();
        this.SizeGripStyle = SizeGripStyle.Show;
    }
}
Run Code Online (Sandbox Code Playgroud)

(主要形式)

+

public partial class Edition : PopupForm
{
    public Edition()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

+

public partial class Preferences : PopupForm
{
    public Preferences()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

+ …

c# winforms

2
推荐指数
1
解决办法
1016
查看次数

Arrays(C++):为什么使用指针直接操作?

我理解指针非常好,我理解它们的很多用途.但是,我从来没有想过在数组中使用指针.我知道怎么做,但我不明白为什么用这个直接操纵数组.我只想知道我只能使用数组中的指针.谢谢.

c++ arrays pointers

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

标签 统计

c++ ×2

arrays ×1

c# ×1

floating-point ×1

pointers ×1

winforms ×1