c# - probleem met delen

Status
Niet open voor verdere reacties.

BugMenOT2

Gebruiker
Lid geworden
23 nov 2006
Berichten
296
hallo,

ik ben bezig met programmeren in csharp.

als ik een berekening doe zoals +, -, * dan gebeurt er wat er gevraagd wordt maar als ik wil delen en het is een kommagetal of ligt onder nul (vb: 0,5) als uitkomst dan doet die niets dan geeft hij de variabele waarin normaal het resultaat komt te staan gewoonweg '0' (heb dit gezien met het debuggen)

even een voorbeeldje geven

Code die werkt zoals het moet
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace delen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_converteer_Click(object sender, EventArgs e)
        {
            double invoer;  //je kan ook float, int, long, sbyte, short proberen -> allemaal zelfde effect
            invoer = 10+3;

            
        }
    }
}
Code die weigert te delen
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace delen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_converteer_Click(object sender, EventArgs e)
        {
            double invoer;  //je kan ook float, int, long, sbyte, short proberen -> allemaal zelfde effect
            invoer = 10/3; // dit levert 3.0 op in plaats van 3.3
            invoer = 6/9;  // dit levert in alle gevallen 0 op in plaats van 0,6

            
        }
    }
}

Kan iemand me hierbij helpen aub?
groetjes,
 
Code:
            double invoer;  //je kan ook float, int, long, sbyte, short proberen -> allemaal zelfde effect
            invoer = 10/3; // dit levert 3.0 op in plaats van 3.3
            invoer = 6/9;  // dit levert in alle gevallen 0 op in plaats van 0,6

Ik werk zelf eigenlijk niet met C#, maar het lijkt mij dat de rechter kant als integer wordt gedeeld en daarna gecast wordt naar een double. Cast anders eens de eerste waarde expliciet naar een double.

Dus iets in de vorm van:

invoer = een_soort_cast<double>(10)/3;
 
Code:
            double invoer;  //je kan ook float, int, long, sbyte, short proberen -> allemaal zelfde effect
            invoer = 10/3; // dit levert 3.0 op in plaats van 3.3
            invoer = 6/9;  // dit levert in alle gevallen 0 op in plaats van 0,6

Ik werk zelf eigenlijk niet met C#, maar het lijkt mij dat de rechter kant als integer wordt gedeeld en daarna gecast wordt naar een double. Cast anders eens de eerste waarde expliciet naar een double.

Dus iets in de vorm van:

invoer = een_soort_cast<double>(10)/3;

Dank u
zo werkt alles :D
das een doordenkertje zenne :p
had echt niet gedacht dat iemand er zo snel ging op reageren:thumb:
bedankt!!!
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace delen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_converteer_Click(object sender, EventArgs e)
        {
            double invoer;  //je kan ook float, int, long, sbyte, short proberen -> allemaal zelfde effect
            invoer = (double)10/3; //3.3
            invoer = (double)6/9;  //0.6

            
        }
    }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan