| FAQ | 
| Kalender | 
| 
			
			 | 
		#1 | ||
		
		
  | 
|||
| 
			
			 Flitig postare 
			
			
			
			
	 | 
	
	
	
		
		
		
		 
			
			Jag har en massa heltal som är mellan 1 och 30000. Nu vill jag minska ner alla dessa tal så att de hamnar på en ny skala, mellan 1 och 10. 
		
		
		
		
		
		
	Alla tal som är mellan 1 och 3000 på den gamla skalan skall på den nya skalan få värdet 1. Alla mellan 3000 och 6000 skall få värdet 2 etc. Finns det någon bra ekvation för detta? Vill helst inte skriva en massa if else satser i min kod. Förmodligen finns det en busenkel lösning på detta. Nån som vet? Uppdaterat: Problemet är ungefär som Googles PageRank. Alla sidor har ett PageRank värde mellan 1 och 10. Men i Googles interna system så är säkert värdet mellan 1 och 1000000. För att förenkla det hela så byter de skala när de visar upp värdet. Det är precis det jag också behöver göra.  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | ||
		
		
  | 
|||
| 
			
			 Klarade millennium-buggen 
			
			
			
			
	 | 
	
	
	
		
		
		
		 
			
			Dela med 3000 och avrunda upp till närmaste heltal. 
		
		
		
		
		
		
	Kod: 
	Function EgenAbs(Tal) If InStr(Tal, ",") <> "0" Then EgenAbs = Left(Tal, (InStr(Tal, ",") - 1)) Else EgenAbs = Tal End If End Function  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | ||
		
		
  | 
|||
| 
			
			 Supermoderator 
			
			
			
			
	 | 
	
	
	
		
		
		
		 Citat: 
	
 
				__________________ 
		
		
		
		
	Full-stack developer, free for smaller assignments  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | |||
		
		
  | 
||||
| 
			
			 Mycket flitig postare 
			
			
			
				
			
			
	 | 
	
	
	
		
		
		
		 
			
			Om du vill ha det lite mer generellt: 
		
		
		
		
		
		
	nytt_tal = avrunda_uppåt(gammalt_tal * nytt_max / gammalt_max)  | 
|||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | ||
		
		
  | 
|||
| 
			
			 Medlem 
			
			
			
			
	 | 
	
	
	
		
		
		
		 
			
			Allra enklast blir ju formeln om man använder sig av heltalsdivision. Då slippar man tänka på avrundning. 
		
		
		
		
		
		
	nyttTal = (gammaltTal / 3000) + 1 Det framgår inte vilket språk radioaktivitet har tänkt att göra detta i, men i många språk ger /-operatorn heltalsdivision om båda operanderna är heltal (int).  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | ||
		
		
  | 
|||
| 
			
			 Klarade millennium-buggen 
			
			
			
			
	 | 
	
	
	
		
		
		
		 
			
			Håller med etanders och vill konkretisera det med ett exempel: 
		
		
		
		
		
		
	Kod: 
	' Funktion 1 ' VB.NET public function rank(ByVal heltal as integer) as integer * *dim kvot as integer * *kvot=heltal/3000+1 * *return kvot end function Kod: 
	' Funktion 2 ' VB.NET ' Mer generell kod public function rank(ByVal heltal as integer, ByVal minRank as integer, ByVal maxRank as integer, *ByVal maxHeltal as integer) as integer * *dim kvot as integer * *kvot=heltal/(maxHeltal/maxRank)+minRank * *return kvot end function Kod: 
	' Funktion 3 ' VB.NET ' Använd Den generella koden... public function rank(ByVal heltal as integer) as integer * *return rank(heltal,1,10,30000) end function  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 Svara med citat
		
		
		
		
		
		
		
			
		
		
		
	 | 
| Svara | 
		
  | 
	
		
  |