我的问题是:
我应该用 0
或更确切地说 0.0
初始化一个浮点变量,例如 double
或 float
(如果我想要的话)当然,用相当于 0
的值初始化它)?
例如:
double var = 0.0;
比较:
double var = 0;
这有什么不同吗?
<小时/>问题针对 C 和 C++ 开放,因为我使用这两种语言,并且不想两次提出相同的问题。如果这两者之间存在显着差异,特别是在这种情况下,请说明您关注的是哪种语言。
由于对 C++ 的半关注,构造函数的情况可能也会对主题产生影响,当然初始化通常是 C++ 中更广泛的主题,但我不知道这是否会影响答案.
非常感谢。
最佳答案
正如 @NathanOliver 评论的那样,在这种情况下,这没有什么区别。但始终说出自己的意思是一个好习惯:
double var = 0.0;
这种习惯会在像 std::accumulate
:
std::vector<double> v{1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0, 10.1};
double sum = std::accumulate(v.begin(), v.end(), 0); // 0 here is wrong!
这不会起作用,因为 std::accumulate
声明为:
template< class InputIt, class T >
constexpr T accumulate( InputIt first, InputIt last, T init );
因此 0
导致 T
为 int
!
关于c++ - 我应该用 0 还是 0.0 初始化浮点(double、float)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378717/