相关疑难解决方法(0)

+0和-0是否相同?

阅读ECMAScript 5.1规范,+0-0进行区分.

为什么然后+0 === -0评估true

javascript

163
推荐指数
5
解决办法
4万
查看次数

什么是避免产出负零的最佳方法?

正如在这个问题中所说,浮点数中的负零和正零之间存在一些差异.我知道这是因为一些重要的原因.我想知道的是一个短代码,以避免输出中的负零.

例如,在以下代码中:

cout << fixed << setprecision(3);
cout << (-0.0001) << endl;
Run Code Online (Sandbox Code Playgroud)

打印"-0.000".但我想要"0.000".

请注意所有其他负数(例如-0.001)仍应使用前面的减号打印,因此根本* -1不起作用.

c++ floating-point cout

10
推荐指数
1
解决办法
6237
查看次数

变量包含额外的隐藏元数据 - 也就是当零不为零(但仍然是)

我讨厌不得不问这个,因为我认为答案必须简单,但我不能因为我的生活似乎追查来源.在尝试重写函数时,遇到了这个问题:

a = -j
x = real(a)  
y = imag(a)
y/x
Run Code Online (Sandbox Code Playgroud)

Inf我出乎意料地吐了出来.然而...

a = 0
b = -1
b/a
Run Code Online (Sandbox Code Playgroud)

-Inf像我期望的那样回归.进一步询问a == x,b == y.显然,这不是真的.经过很多挫折后,我终于找到了问题.如果原始输入a0-j(相对-j)则没有问题.

双方real(-j)real(0-j)返回零和测试为零,但显然似乎保存涉及原籍,我绝对不能发现一些元数据.我到底错过了什么?如果我必须用类似的东西来解决这个问题,那将会感到完全错误if (x == 0) then x = 0;

floating-point matlab zero complex-numbers

10
推荐指数
1
解决办法
178
查看次数

C++ ceil 和负零

在 VC++ 2008 上,ceil(-0.5)正在返回-0.0. 这是通常/预期的行为吗?避免-0.0将 a打印到 i/o 流的最佳做法是什么。

c++ floating-point visual-studio-2008 ceil

5
推荐指数
1
解决办法
2287
查看次数

整数的默认值?

程序启动时,我的程序需要将几个浮点数设置为默认数字.当程序运行时,这些整数将被设置为它们的真值.然而,这些真实值可以是任何实数.我的程序将一直检查这些数字,看看它们的值是否已从默认值更改.

例如,假设我有整数A,B,C.所有这些整数将在开始时设置为默认值(假设为-1).然后随着程序的进行,让A和B分别设置为3和2.由于C仍处于默认值,因此程序可以得出结论,但尚未为C指定非默认值.

尝试查找唯一的默认值时会出现问题.由于数字的值可以设置为任何值,如果其设置的值与默认值相同,我的程序将不知道浮点数是否仍具有默认值,或者其真值是否与默认值相同.

我认为NULL是一个默认值,但在C++中NULL等于0,导致同样的问题!

我可以创建一个由bool和float组成的整个对象作为成员,其中bool指示浮动是否已经分配了自己的值.然而,这似乎是一种矫枉过正.是否有一个默认值我可以设置我的浮点数,使得该值与任何其他值不相同?(例子包括无限或i)

我在问C/C++解决方案.

c++

4
推荐指数
2
解决办法
2723
查看次数