Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# prosta mnozenje/deljenje mi ne radi

[es] :: .NET :: C# prosta mnozenje/deljenje mi ne radi

[ Pregleda: 461 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 713
*.exe-net.net.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 10:46 - pre 6 meseci
Pozdrav

Jel moze molim vas neko da mi kaze sta moze da bude problem kad mi za ovako nesto vraca vrednost 0?

Code:

using System;
                    
public class Program
{
    public static void Main()
    {
        var calc = (2/(3600 / (3600 / 4))) * 5;
        Console.WriteLine(calc.ToString());//Value returned is 0 and should be 2.5
    }
}


https://dotnetfiddle.net/UIeHa5
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3187

Jabber: djoka_l


+1369 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 10:52 - pre 6 meseci
Napisao si celobrojno deljenje
Code:
using System;
                    
public class Program
{
    public static void Main()
    {
        var calc = (2.0/(3600 / (3600 / 4))) * 5;
        Console.WriteLine(calc.ToString());//Value returned is 0 and should be 2.5
    }
}
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 713
*.exe-net.net.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 11:09 - pre 6 meseci
Kolko je ovo strasno
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3187

Jabber: djoka_l


+1369 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 12:25 - pre 6 meseci
Pa tako je u većini C-like jezika. Ako jezik može da razume da je u operacijama korišćen samo int tip podataka, sve će da radi kao celobrojnu aritmetiku. Ako jezik podržava implicitnu konverziju, staviš jedan float/double parametar pa će sve (možda) da odradi u pokretnom zarezu. Ja sam stavio samo jedan float - 2.0 - jer sve ostale operacije daju isti rezultat i u celobrojnoj i u float aritmetici.
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 713
*.exe-net.net.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 12:58 - pre 6 meseci
Za mene je samo jedno mozda razlika dal cu da prihvatim projekat il ne a ovo
Code:

using System;
                    
public class Program
{
    public static void Main()
    {
        int a = 2;
        float b = 2;
        double c = 2;
        int d = 3600;
        double e = 3600;
        int f = 4;
        double g = 4;    
        int h = 5;    
        
        var calca = (a/(d / (d / f))) * h;
        var calcb = (b/(d / (d / f))) * h;
        var calcc = (c/(e / (e / f))) * h;
        var calcd = (a/(e / (e / f))) * h;
        var calce = (a/(d / (d / g))) * h;        
                
        Console.WriteLine(calca.ToString()); // 0
        Console.WriteLine(calcb.ToString()); // 2.5
        Console.WriteLine(calcc.ToString()); // 2.5
        Console.WriteLine(calcd.ToString()); // 2.5
        Console.WriteLine(calce.ToString()); // 2.5
        
    }
}


znaci da cu posle 20 godina da kompletno izbacim integer iz svih projekata!!! Ne mogu da verujem
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3187

Jabber: djoka_l


+1369 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 13:30 - pre 6 meseci
Ne moraš da izbaciš int iz programiranja, koristi cast. Uostalom, ako je tebi bitno da rezultat bude 2.5 (float), zašto očekuješ da će int aritmetika da ti da float rezultat?
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 713
*.exe-net.net.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 13:49 - pre 6 meseci
Pa OK ne mora da vrati int al nek baci ex ... Ja sam kriv svakako al sam sa int zavrsio big time ako ce da bude umesan u bilo kakve kalkulacije ..samo za ID MOZDA :D
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12819



+4754 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 14:25 - pre 6 meseci
U tom slucaju bi u vecini slucajeva deljenja imao exception :)
Ako uzmes sve intove i podelis jedan sa drugim, vise bi putao imao exception nego rezultat.
S druge strane, dobijanje celog dela rezultata deljenja celih brojeva nije toliko cudna stvar. Jedonstavno, deli ti sa onoliko preciznosti koliko moze (kao sto je to slucaj i sa drugim tipovima 1/3 i ce ti i za double i float dati preciznost samo koliko moze, nece tacnu vrednost).

Ono sto je tebe verovatno dovelo u zabludu je da kada napises 2 to je u stvari int iako nigde ne pise a sa gledista matematike isto tako bi se pisao i double. No, programskom jeziku ipak treba precizno sta hoces.
Dalje je sve jasno, imas int-ove u operacijama pa je i rezultat int koji mora biti svedeni na ceo broj, cak i ako matematicki gledano operacija daje rezultat koji nije ceo broj.
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 713
*.exe-net.net.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: C# prosta mnozenje/deljenje mi ne radi18.12.2021. u 14:39 - pre 6 meseci
@Shadowed
Da ocigledno ste u pravu nema sumnje al je po meni to lose resenje za na primer pocetnike kao ja, ma resicu ga nema problema samo dok sam mu vido navike :)
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

[es] :: .NET :: C# prosta mnozenje/deljenje mi ne radi

[ Pregleda: 461 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.