Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:32 Der er 14 kommentarer og
1 løsning

Syntax error

Hej eksperter. Jeg har et problem med en bug i mit program, som jeg ikke kan finde ud af hvorfor kommer. Eller jeg ved hvad den kommer af, men kan ikke se hvorfor den kommer. Er der nogen der hjælpe?

Unable to cast object of type 'System.Windows.Forms.TextBox' to type 'System.IConvertible'.

Kode:

private string tbMoms()
        {
            if (tbIalt.Text != "0")
            {
                double dmoms = Convert.ToDouble(tbIalt);
                double dmomsres = dmoms * 0.20;
                string moms = Convert.ToString(dmomsres);
                return moms;
            }
            else { }
            return "0";

Værdien i tbIalt er summen af en masse andre textboxe, men ved programstart er denne dog nul.

Nogen der ved hvorfor denne fejl fremkommer?

Mvh

Martin Sørensen
Avatar billede arne_v Ekspert
13. oktober 2007 - 22:34 #1
double dmoms = Convert.ToDouble(tbIalt.Text);
Avatar billede kalp Novice
13. oktober 2007 - 22:34 #2
double dmoms = Convert.ToDouble(tbIalt.Text);
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:35 #3
Fandt ud af det selv. Er bare lidt træt her i de sene timer af døgnet. Fejlen er selvfølgelig at jeg har glemt .Text i 

double dmoms = Convert.ToDouble(tbIalt);

Koden ser nu således ud:

private string tbMoms()
        {
            if (tbIalt.Text != "0")
            {
                double dmoms = Convert.ToDouble(tbIalt.Text);
                double dmomsres = dmoms * 0.20;
                string moms = Convert.ToString(dmomsres);
                return moms;
            }
            else { }
            return "0";
Avatar billede arne_v Ekspert
13. oktober 2007 - 22:35 #4
Og jeg vil stadig sige at du skal bruge decimal ikke double.
Avatar billede kalp Novice
13. oktober 2007 - 22:35 #5
hehe

nåh.. men forklaringen er at du prøver at konvertere din textbox og ikke indeholdet.
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:35 #6
tak til jer begge
:D

send et svar så får i point. :D
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:36 #7
hvad er fordelen ved decimal?

Syntes bare jeg har haft problemer med at regne med decimal?

Mvh :)
Avatar billede arne_v Ekspert
13. oktober 2007 - 22:37 #8
private string tbMoms()
{
    return (0.20m * decimal.Parse(tbIalt.Text)).ToString(0.00);
}

burde virke.
Avatar billede arne_v Ekspert
13. oktober 2007 - 22:37 #9
Man undgår mystiske afrundinger med decimal.
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:39 #10
En væsentlig optimering ser det ud til :)

Men:

Error    2    The best overloaded method match for 'decimal.ToString(string)' has some invalid arguments    C:\revision\WindowsApplication1\WindowsApplication1\Form2.cs    74    20    WindowsApplication1

Hvad er forskellen på decimal og double?

Mvh
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:41 #11
Ahhh kan jeg se nu :D

Vil nu ændre alle mine double til decimal :D

Det er det jeg elsker med jer herinde. I ved SÅ MEEGET mere end mig at man kan spørge om stort set alle problemer. Jeg sætter virkelig pris på jeres hjælp! Jeg kommer så meget hurtigere videre, og lærer MEGET mere! TUSIND TAK "PÅ FORHÅND" ;-)
Avatar billede martinsorensen Nybegynder
13. oktober 2007 - 22:47 #12
private string tbMoms()
{
    return (0.20m * decimal.Parse(tbIalt.Text)).ToString(0.00);
}

VIrker!!! hvis man fjerner 0.00

Ser således ud:


private string tbMoms()
{
    return (0.20m * decimal.Parse(tbIalt.Text)).ToString();
}

Hvad betyder m efter 0.20?

Mvh husk at smide et svar :)
Avatar billede arne_v Ekspert
13. oktober 2007 - 23:01 #13
.ToString("0.00")

:-)
Avatar billede arne_v Ekspert
13. oktober 2007 - 23:02 #14
0.20m betyder 0.20 som decimal

om m er tilfældig valgt eller er en forkortelse for money er der vist lidt delte
opfattelser af
Avatar billede arne_v Ekspert
13. oktober 2007 - 23:02 #15
Og et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester