Podle toho jestli je proměnná typu integer nebo double je výsledek buď bez desetinných čísel nebo s nima. No pozor, tam je to trochu jinak. Problém je v tom, jak je definován operátor /, operátor je totiž vlastně úplně nornální funkce, která na vstupu dostane dva parametry nějakého typu a vrátí hodnotu nějakého typu. V C# a dle tohoto příkladu i SQL je prostě operátor / definován jako funkce, která bere 2 integery a vrací integer. Také je tam definován operátor nad desetinnými čísly a vrací desetinné číslo. Ve VB.NET operátor / vrací vždy desetinné číslo, ať už do něj jdou integery nebo ne. VB.NET pořád rozlišuje mezi datovými typy a je typově striktní, ale má definovanou i automatickou konverzi z double na integer. Tím pádem se to chová tak, jak se to chová. Výsledkem delění operátorem / je vždy Double, ale ten se dá přiřadit i do Integeru bez nutného přetypování jako v C#. Asi o tom napíšu .NET tip, je to docela zajímavé téma.
|