<EDIT>Troede opgaven lød på at lave outputtet om, men det var selve tallet der skulle laves om. Jeg har ladet løsningen nedenfor stå, hvis nogen skulle få brug for det.
</EDIT>Du kan bruge precision
#include <iostream>
int main()
{
float tal = 2.3343;
std::cout.precision(2);
std::cout << tal << std::endl;
return 0;
}
Dog er der nogle små problemer, da precision kun virker på enkelte størrelser tal af gangen. Hvis tallet du startede med 52,... ville programmet ovenfor ikke virke. Man bliver nød til at lave en form "checkning"
#include <iostream>
int main()
{
float tal = 22.3343;
if(tal < 10)
std::cout.precision(2);
else if(tal > 10 && tal < 100)
std::cout.precision(3);
// ...
std::cout << tal << std::endl;
return 0;
}
Men, det ser jo ikke just godt ud, så måske ikke den optimale løsning. Du kunne også vælge at bruge printf, men ved ikke. Nogle er ikke glade for det når man jo snakker C++
#include <iostream>
int main()
{
float tal = 121223.3343;
std::printf("%.1f\\n", tal);
return 0;
}
Sidste metode virker lige meget hvor stort tallet er, så det er i mine den bedste løsning.
Indlæg senest redigeret d. 31.10.2006 06:51 af Bruger #8422