Nikoliv, jedná se o hovnokod, protože takto definovat operátor == přímo na typ double je nesmysl. Dělal jsem si test a nenašel jsem situaciy, kdy by platilo (x==y)!=(x>=y && y<=x). Opravdu nevidím smysl.
Takže je to celé proto, aby se minimalizovala definice? To by mi jediné v této diskusi dávalo smysl.
Príspevkom som myslel skôr to, že niekto zle opisoval odniekiaľ, kde sa minimalizovala definícia u iných objektov, kde ide porovnávať len <=.
Ak máš ==, tak použi namiesto takej konštrukcie ==; u primitívnych dátových typov je to ešte oveľa jasnejšie. U doublov/floatov by si si naviac mal dať pozor a uvedomiť si "toto niekedy nebude fungovať, ako sa čakalo" a prepísať to s použitím nejakého epsilon.
Jasně, myslel jsem tu původní (zřejmě učebnicovou) ideu, ze které to opsal. S tím epsilonem nevím, pokud bych to měl dělat opravdu jenom nějaký wrapper double, možná bych se snažil, aby se to chovalo jako double. Chápu, že když člověk transformuje třeba nějaký geometrický útvar a porovnává ho s něčím, dává smysl dát tam nějakou toleranci, ale na takto relativně nízké úrovni bych to asi neřešil a normálně porovnal ta vnořená čísla, ať si s nimi kompilátor/procesor dělá, co dělá obvykle. A kdybych chtěl mít jistotu, že ((x / y) * y) == y, možná bych počítal s racionálními čísly. Je ale fakt, že takto low-level jsem už dlouho nic neřešil a může být dobrý důvod používat double a zaokrouhlovat může být výhodné.