Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
12.11.2002, 18:23
[HUI]-Tiger-



Hi zusammen,

ich weiss dass meine Frage wohl etwas nubig ist, aber ich hoffe ihr könnt mir trotzdem helfen...

Es geht um ne Division int/int, aber logischer weise sind die nicht immer teilbar (z.B. 5/2 oder so). Ich will dann die in floats konvertieren und dann teilen.

Gibts sone funktion ? Gibts auch float -> int ?
Gibt es ne Funktion zum Runden von Zahlen ?

thx im voraus...

--

.-.-.-.
cya Tiger

zum Seitenanfang zum Seitenende Profil || Suche
001
12.11.2002, 18:59
Ornest



Du musst casten. In PHP ist es einfach

Quellcode:
$integer = (float) $integer;

(schlagt mich, wenn ...)

--

zum Seitenanfang zum Seitenende Profil || Suche
002
12.11.2002, 19:06
Retro



Von welcher Sprache redest du? Es gibt immer mehrere Wege...

1. Ganzzahldivision
2. Typecasting (Ornests Vorschlag)
3. Trunc / Round

Also, welche Sprache?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
003
12.11.2002, 19:10
[HUI]-Tiger-



Sorry habe ich vergessen ;)
Ich rede von C++,

wie heisst die Funktion in C++ zum Runden ? Welcher Header muss her (ich habe math.h) ?

stimmt das mit dem casten hab ich schonmal irgendwo gesehn, ich werds ausprobieren ;D

[EDIT]
Wow, funktioniert auf anhieb :D
hab jetzt floor in google gefunden *g*
aber warum:
Quellcode:
double floor(double);

wenn ich ein float übergebe funzt es auch problemlos...

--

.-.-.-.
cya Tiger


Dieser Beitrag wurde am 12.11.2002 um 19:17 von [HUI]-Tiger- bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
12.11.2002, 19:27
Tron



int x = 5;
int y = 2;

in c++ ist der typ des ergebnisses einer operation der 'weitere' typ der operanden, da hier beide operanden den selben typ haben ist auch das ergebnis int, also ergibt x/y 2. int / int rundet immer gegen null. (hier verhaelt sich z.b. pascal anders, das ergebnis ist da dann vom typ real und 2.5)

will man eine flieskommaoperation durcfuehren muss mindestens einer der parameter eine flieskommazahl sein, also:
float(x) / y
nun erhaelt man das gewuenschte ergebnis 2.5

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
005
13.11.2002, 11:13
[RMen]OneStone



Was auch geht (um bei Ganzzahlen zu bleiben):

Quellcode:
int iA = 5, iB = 2;
int iErgebniss = (iA * 100) / (iB * 100); // 100 für 2 Nachkommastellen

printf("%i.%2.i\n", iErgebniss / 100, iErgebniss % 100);

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
006
13.11.2002, 16:22
Tron



da hat wer in der schule net aufgepasst, als die grundrechenarten dran waren...

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
007
13.11.2002, 16:28
CN



Zitat:
int iErgebniss = (iA * 100) / (iB * 100); // 100 für 2 Nachkommastellen
O_o
5/2= 2.5
500/200=2.5
also frag ich mich: was machst du da?

--

zum Seitenanfang zum Seitenende Profil || Suche
008
13.11.2002, 16:33
Tron



vor allem macht er das mit int, also:
5 / 2 == 2
und
500 / 200 == 2

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
009
14.11.2002, 14:51
[RMen]OneStone



Hmm, war'n bisschen Falsch; richtig:

Quellcode:#include <stdio.h>
#include <conio.h>

int main()
{
int iA = 1, iB = 4;
printf("%i/%i = %i.%2.i\n", iA, iB, iA / iB, ((iA % iB) * 100) / iB);
getch();
}

Und das geht 100%ig (wer was anderes sagt ist schwul... ;])

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/


Dieser Beitrag wurde am 14.11.2002 um 15:05 von [RMen]OneStone bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
14.11.2002, 22:54
Leviathan



noch eine ergänzung zum cast:
hier ein code für unsere freunde des gepflegten c++-stl static_casts:

Quellcode:
#include<iostream.h>

void main()
{
    int iA=5;
    int iB=2;
    cout<<iA<<"/"<<iB<<"="<<iA/static_cast<float>(iB)<<endl;
    return;
}

und wer casts sowiso nicht leiden kann erzwingt die typumwandlung eben anders:

Quellcode:
#include<iostream.h>

void main()
{
    int iA=5;
    int iB=2;
    cout<<iA<<"/"<<iB<<"="<<(iA*1.0F)/(iB)<<endl;
    return;
}

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche