Posunutie desatinnej ciarky v C

Programovacie jazyky, rady, poradňa...
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Posunutie desatinnej ciarky v C

Príspevok od používateľa sharky-no »

Potreboval by som pomoct, s desatinou ciarkou.
Existuje nejaky sposob ako ju posunut s urcitim poctom desatinnych miest bez toho aby som pouzil delenie?

napr. ide o cislo 33 a chcem mat z neho 0.33
vlastne potrebujem pred nejake cislo dostat nulu s ciarkou.
kniznicu pouzivam len stdio.h

som uplny zaciatocnik, skusenosti (ake take) mam len s pascalom.


ak tu je podobna tema tak, prepacte za spam (no nenasiel som nic take)
addictor
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 419
Registrovaný: 28 dec 2007, 13:34
Bydlisko: MT / BA
Kontaktovať používateľa:

Príspevok od používateľa addictor »

mozem vediet dovod, preco to nechces delit...?
"J"
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1019
Registrovaný: 13 mar 2007, 17:10

Príspevok od používateľa "J" »

Tak mozes nasobit :)
Zadas, o kolko des.miest sa ma posunut (doprava +, dolava -) a pouzijes cislo * 10^o_kolko_posunut
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Príspevok od používateľa sharky-no »

mno ono mam vytvorit kalkulacku, a v nej funkcie nasobenie, delenie, mocnina len pomocou znamienok + a -.

a dokazal som spravit akurat tak celociselny podiel, a zvysok
napr. 16 / 5 = 3 zv 1

a chcem to spravit tak ze ten zvysok vynasobim celociselne (na co mam uz funkciu) napr. 100(ked chcem mat 2 desatinne miesta) a potom to celociselne videlim 5... dostanem cislo 20... a toto cislo potrebujem dostat za desatinnu ciarku a potom ho scitat s tou 3 a tym ziskam cislo 3.2

s tym nasobenim 10^cislo... tiez nemozem, lebo funkciu nasobenie s real cislami mam tiez tak osetrenu ze posledny krok je delenie.. a toho sa musim zbavit

dufam ze som sa vyjadril dost jasne :)

pre istotu zdrojak na delenie:
#include <stdio.h>

int main()
{
double a,b,z,v,i,j,c,x,k;


printf("zadaj prve cislo\n");
scanf("%lf", &a);
printf("zadaj druhe cislo\n");
scanf("%lf", &b);
z=a;
v=a;
c=0;

while (z>=0) //cyklus na vyratanie zvysku - mod
{
z=z-b;
}
z=z+b;

for (i=0; v>=0; i++) //celociselny podiel - div
{
v=v-b;
}
i--;

printf("vysledok je %lf\n", i);
printf("zvysok je %lf\n", z);

for (j=0; j<=100; j++) // nasobenie zvysku o 100 - 2 desatinne miesta
{
c=c+z;
}
x=c;
for (k=0; x>=0; k++) // delenie tohto cisla, celeciselne - div
{
x=x-b;
}
k--;
printf("zvysok po deleni %lf\n", k);

k=k/100; // a toto musim poriesit... ako dostat z cisla xy cislo 0.xy ??

printf("Celkovy vysledok je %lf\n", k+i);


return 0;
}
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

FEI powa ? lebo mi to mame tiez to iste. a ked chces urobit z desatinneho cele tak to vynasob 0.01 (pokial ratas na 2 desatine miesta)... nasobenie dufam mas. a v nasobeni si uz osetris ako nasobit 2 desatinne cisla... tak som to robil ja
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Príspevok od používateľa sharky-no »

diki neppo, takuto myslienku som potreboval :)
k+


btw. hej FEI 4 ever :D

mozete lock :)
Napísať odpoveď