ventura87 Skrevet 1. april 2011 Del Skrevet 1. april 2011 Hei Lurer på om noen vet hvordan, eller kan tenke seg hvordan, man kan f.eks skrive inn et tall med SI-prefiks (eks 100µ) og lagre det i en string med prefiks. Senere skal det tallet kunne sammenlignes med et inntastet tall (eks 0.1m) og "skjønne" at det dreier seg om samme tallet. Kanskje litt enklere forklart: cin >> tall1 >> tall2 (skriver inn hhv. 100µ og 0.1m) if (tall1 = tall2) { cout << "tall1 er like stort som tall2"; } else cout <<"ulik størrelse"; Skal brukes til noe mer nevenyttig enn dette, men illustrerer greit hva jeg vil fram til. Dette skal selvsagt gjelde alle prefikser. (k,M,G,m,µ,n,p osv) Har funnet en boost header som jeg tror kan gjøre dette, men forstår ikke helt hvordan den fungerer. Setter stor pris på noen lure tips her. Lenke til kommentar
GeirGrusom Skrevet 2. april 2011 Del Skrevet 2. april 2011 Kan du ikke bare lage din egen datatype som fikser det selv? template<typename T> class SIUnit { const T value; const wchar_t unit; double exponent() { switch(unit) { case L'M': return 10e6; case L'k': return 10e3; case L' ': return 1; case L'm': return 10e-3; case L'µ': return 10e-6; } } public: static operator T(const SIUnit<T>& other) const { return value * exponent(); } } Mulig jeg blander litt C+ og C# nå, men du skjønner sikkert. 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå