mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 07:33:57 +00:00
Couple changes to C to close https://github.com/adambard/learnxinyminutes-docs/pull/594
This commit is contained in:
parent
fc84512fa6
commit
cd7ed4f9f9
@ -4,6 +4,7 @@ filename: learnc.c
|
|||||||
contributors:
|
contributors:
|
||||||
- ["Adam Bard", "http://adambard.com/"]
|
- ["Adam Bard", "http://adambard.com/"]
|
||||||
- ["Árpád Goretity", "http://twitter.com/H2CO3_iOS"]
|
- ["Árpád Goretity", "http://twitter.com/H2CO3_iOS"]
|
||||||
|
- ["Jakub Trzebiatowski", "http://cbs.stgn.pl"]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -175,6 +176,9 @@ int main() {
|
|||||||
i2 * i1; // => 2
|
i2 * i1; // => 2
|
||||||
i1 / i2; // => 0 (0.5, but truncated towards 0)
|
i1 / i2; // => 0 (0.5, but truncated towards 0)
|
||||||
|
|
||||||
|
// You need to cast at least one integer to float to get a floating-point result
|
||||||
|
(float)i1 / i2 // => 0.5f
|
||||||
|
i1 / (double)i2 // => 0.5 // Same with double
|
||||||
f1 / f2; // => 0.5, plus or minus epsilon
|
f1 / f2; // => 0.5, plus or minus epsilon
|
||||||
// Floating-point numbers and calculations are not exact
|
// Floating-point numbers and calculations are not exact
|
||||||
|
|
||||||
@ -194,9 +198,11 @@ int main() {
|
|||||||
2 >= 2; // => 1
|
2 >= 2; // => 1
|
||||||
|
|
||||||
// C is not Python - comparisons don't chain.
|
// C is not Python - comparisons don't chain.
|
||||||
// WRONG:
|
// Warning: The line below will compile, but it means `(0 < a) < 2`.
|
||||||
//int between_0_and_2 = 0 < a < 2;
|
// This expression is always true, because (0 < a) could be either 1 or 0.
|
||||||
// Correct:
|
// In this case it's 1, because (0 < 1).
|
||||||
|
int between_0_and_2 = 0 < a < 2;
|
||||||
|
// Instead use:
|
||||||
int between_0_and_2 = 0 < a && a < 2;
|
int between_0_and_2 = 0 < a && a < 2;
|
||||||
|
|
||||||
// Logic works on ints
|
// Logic works on ints
|
||||||
|
Loading…
Reference in New Issue
Block a user