[java] Berekeningen met double en integers

Pagina: 1
Acties:
  • 594 views sinds 30-01-2008
  • Reageer

  • Tha_Spike_1981
  • Registratie: April 2003
  • Laatst online: 24-04 17:59
Het probleem is dat het niet lukt om een double te delen door een integer, en deze dan weer te geven in een double. Als output krijg ik namelijk altijd een 0.0. De output van constraint en sum zijn goed, dit kan bijvoorbeeld zijn: constraint: 2 en sum: 9. De output zou dan moeten zijn:
0.22222222222222222222222222222222. Waar het misschien ook kan zitten, is de afronding van dat getal.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public static double[][] CalculateGenreConstraints(int[][] genre_constraints) throws Exception{
        
        int sum =0;
        calculated_genre_constraints = new double[Genres.getGenreProfTableSize()][2];       
        
        //The sum
        for (int x = 0; x < Genres.getGenreProfTableSize(); x++)            
                sum = sum + genre_constraints[x][1];        
        
        //Recalculate new values to array: calculated_genre_constraints
        for (int x = 0; x < Genres.getGenreProfTableSize(); x++)
            for (int y = 0; y < 2; y++) {
                System.out.println("Constraint: "+ genre_constraints[x][1]);
                System.out.println("Sum: "+ sum);
                
                calculated_genre_constraints[x][y] = (genre_constraints[x][1] /sum);
                System.out.println(calculated_genre_constraints[x][y]);                             
            }

        return calculated_genre_constraints;
    }

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

constraint en sum zijn beide int. OP deze beiden wordt daarom dus ook een integer deling toegepast. Pas bij de toekenning naar een double wordt de cast gedaan. Om een double deling te gebruiken zul je (een van) beide moeten casten naar een double voor de deling.

Java:
1
2
3
int i,j;
//code
double d = (double)i/(double(j)


Het is trouwens gebruikelijker in java om methode namen niet met een hoofdletter te laten beginnen.

[ Voor 26% gewijzigd door Janoz op 21-06-2005 11:01 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Tha_Spike_1981
  • Registratie: April 2003
  • Laatst online: 24-04 17:59
Ok, wat mij betreft een slotje. Het werkt namelijk! Begin pas met programmeren. Bedankt voor de tips!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Slotjes komen alleen op topics die niet aan de policies voldoen en/of uit de hand gelopen zijn/dreigen te lopen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Het is trouwens gebruikelijker in java om methode namen niet met een hoofdletter te laten beginnen.
Een 'goede' IDE begint daar tevens over te klagen...
Dus misschien eens kijken naar IntelliJ IDEA of Eclipse.
En als je die al gebruikt misschien maar eens de warnings lezen ;)

  • Tha_Spike_1981
  • Registratie: April 2003
  • Laatst online: 24-04 17:59
Ik gebruik wel degelijk Eclipse, perfecte editor. Waar kan ik dat IntelliJ IDEA vinden dan?

  • jAnO!
  • Registratie: Januari 2002
  • Laatst online: 01-05 18:22

jAnO!

lalalavanillevla

even creatief... www.intellij.com

is wel wat duurder dan Eclipse ;)

When some people work at a place for ten years they get ten years of experience, other people work at a place for ten years and get one year of experience ten times.


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
jAnO! schreef op dinsdag 21 juni 2005 @ 17:42:
even creatief... www.intellij.com

is wel wat duurder dan Eclipse ;)
Oneindig veel duurder zelfs, aangezien Eclipse gratis is ;)

Verwijderd

offtopic:
als je dan toch opzoek gaat naar een IDE, kijk dan ook eens even naar netbeans
Pagina: 1