'Integer = rnd.Next (getal 16 cijfers lang)

Status
Niet open voor verdere reacties.

ninjaplayer

Gebruiker
Lid geworden
15 apr 2007
Berichten
603
Code:
Dim getal1 As Integer = rnd.Next(1000000000000000, 9999999999999999)

Weet iemand wat in de plaats van 'Integer' moet? 'Long' doet het ook niet.
 
Wat wil je eigenlijk doen, ik snap het niet helemaal 100%
 
Sorry, je hebt gelijk. Een beetje onduidelijk.

Ik wil een random getal dat tussen de 1.000.000.000.000.000 en de 9.999.999.999.999.999 zit maar met Integer lukt het niet.
 
Indien je wilt leren programmeren is het belangrijk dat je de volledige achtergrond
van primitieve types verstaat (d.i. Integer, Double, Byte, Boolean, ... Maar GEEN String,
String is een klasse)

Een oude integer (Int16) gaat van ergens -32768 tot +32767
Een standaard integer (Int32) gaat van ergens -2.147.483.648 tot +2.147.483.648
En als laatste de nieuwste integer (Int64) gaat van ergens -9*10^18 tot 9*10^18
Bij de Int64 wel te verstaan, moet je een 64-bit memory system hebben, als een 64-bit
operating system en als een 64-bit processor.

Hoe bereken je dat: 2^16 / 2 of 2^32 / 2 of 2^64 / 2
Waarom die gedeeld door 2: zowel positieve als negatieve getallen!

Bij deze waarom dat vb een fout geeft. Nu de oplossing (is misschien korter te maken,
maar de lange weg gaat ook):

Code:
Dim getal1 As Double = rnd.NextDouble(1000000000000000, 9999999999999999)
Dim hulp As String = getal1.ToString("###########################0")
getals1 = Convert.ToDouble(hulp)

Ik hoop dat deze oplossing werkt, want is volledig uit de losse pols!
 
En als laatste de nieuwste integer (Int64) gaat van ergens -9*10^18 tot 9*10^18
Bij de Int64 wel te verstaan, moet je een 64-bit memory system hebben, als een 64-bit
operating system en als een 64-bit processor.

Bij doet int64 het wel, ik heb 32 bits processor
 
Sorry, je hebt gelijk. Een beetje onduidelijk.

Ik wil een random getal dat tussen de 1.000.000.000.000.000 en de 9.999.999.999.999.999 zit maar met Integer lukt het niet.

Ow, oke probeer dit:

Code:
Dim a As Integer
For a = 9.999.999.999.999.999 To 1.000.000.000.000.000
Dim c As Integer
c = rnd * a
Next

Ik weet echt niet of die het wel doet, het getal is erg groot

P.S: Ik denk dat je de punten er tussen uit moet halen
 
Bij doet int64 het wel, ik heb 32 bits processor

Inderdaad dat werkt ... reden: uw computer schrijft toch een int32 weg, want

hoe kan een 32bit geheugen systeem een 64bit grote variabele wegschrijven?
Theoretisch en praktisch niet haalbaar!

En nog een klein iets in jouw code:
Code:
For a = 9.999.999.999.999.999 To 1.000.000.000.000.000 [COLOR="red"]Step -1[/COLOR]
 
Laatst bewerkt:
Het staat in het rood ... :rolleyes: ... vermits het getal met de 9 groter is dan het getal met de 1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan