Jan. 9th, 2015

Как говорят на юге - lest we forget. Или, как говорят на севере, я просто оставлю это здесь.

Win7x64, .Net 4ю0, C# , MSVS-2010.

double x = 2478.6;
double y = 503.88;
double z = 1974.72;

x - y = 1974.7199999999998
"" + (x - y) = "1974.72"
x - y - z = -0.00000000000022737367544323206
"" + (x - y - z) = "-2.27373675443232E-13"
Double.Parse("" + (x - y - z)) = -0.000000000000227373675443232
Double.Parse("" + (x - y - z), System.Globalization.NumberStyles.Number) -> Exception.

Документация про это грустно говорит "double does not guarantee precision". Но я их всё равно ненавижу.

Только не спрашивайте, зачем это такое вообще появилось в коде. Это индусское программирование, его простым людям не понять. Простым людям достаточно научиться это вовремя чинить...

Profile

Vythe

February 2026

S M T W T F S
1 234567
891011121314
15161718192021
22232425262728

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 4th, 2026 12:35 am
Powered by Dreamwidth Studios