I came across this tutorial, and I've never encountered this syntax: gp_Pnt aPnt1(-myWidth / 2., 0, 0);. I'm likely looking in the wrong places, but why does G accept all 3 of these variable initializations?
double a = 2;
double b = 2.;
double c = 2.0;
I don't remember coming across 2. - is this shorthand for 2.0, or are they different?
CodePudding user response:
2 is an int literal.
2. and 2.0 are identical and are double literals. The first one is just a shorter version.
2.f and 2.0f are identical and are float literals.
CodePudding user response:
According to this documentation, there are six ways to declare a floating-point literal in c . Three of which use decimal format, while the other three uses hex format. As for the decimal format, here're the syntaxes:
digit-sequence decimal-exponent suffix(optional) (1)
digit-sequence . decimal-exponent(optional) suffix(optional) (2)
digit-sequence(optional) . digit-sequence decimal-exponent(optional) suffix(optional) (3)
So the literal 2 in double a = 2;uses syntax (1). The literal 2. in double b = 2.; uses syntax (2). The literal 2.0 in double c = 2.0 uses syntax 2.0. As far as I know, there are no difference in semantics in this context. However, in another context, for example, int d = 2;, the literal 2 stands for an integer literal and not floating point literal.
