Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[c#] double splitsen in 2 variablen

Pagina: 1
Acties:

  • mike643
  • Registratie: Maart 2005
  • Laatst online: 20-10 12:51
Ik wil graag een double splitsen, bijv. 1.67 naar een variable 1 en een variable 67
Volgens mij moet dit mogelijk zijn, maar door alle verschillende mogelijkeheden zoals NumberDecimalSeparator en number format kom ik er echt niet uit.

Verwijderd

Niet zo heel mooi wellicht, maar het werkt wel :P.
C#:
1
string[] output = myDouble.ToString().Split(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.ToCharArray());


Resultaat:
code:
1
2
3
4
myDouble = 12.34
//wordt
output[0] = "12"
output[1] = "34"

[ Voor 19% gewijzigd door Verwijderd op 11-07-2008 21:13 ]


  • Cyphax
  • Registratie: November 2000
  • Nu online

Cyphax

Moderator LNX
Je kunt ook een variabele vullen met Nummer - Nummer.Floor()*10 voor hetgene achter de komma, en dan voor die andere gewoon Nummer.Floor() pakken? Lijkt me wat minder werk dan allerhande casts en split e.d uitvoeren. :)
Verwijderd schreef op vrijdag 11 juli 2008 @ 21:10:
Niet zo heel mooi wellicht, maar het werkt wel :P.
C#:
1
string[] output = myDouble.ToString().Split(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.ToCharArray());


Resultaat:
code:
1
2
3
4
myDouble = 12.34
//wordt
output[0] = "12"
output[1] = "34"
Dan moet je het waarschijnlijk ook weer terug gaan casten van string naar int oid.

[ Voor 72% gewijzigd door Cyphax op 11-07-2008 21:18 ]

Saved by the buoyancy of citrus


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Een nettere oplossing lijkt mij iets als dit (zou moeten werken, niet getest)
C#:
1
2
3
double x = 1.67;
int y = (int)x;
double z = x % 1;

Blog [Stackoverflow] [LinkedIn]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op vrijdag 11 juli 2008 @ 21:10:
Niet zo heel mooi wellicht, maar het werkt wel :P.
Prima dat het strings worden, ik hoop dat ts toch niet met die 67 wilt gaan rekenen. :P

{signature}


Verwijderd

Cyphax schreef op vrijdag 11 juli 2008 @ 21:16:
Je kunt ook een variabele vullen met Nummer - Nummer.Floor()*10 voor hetgene achter de komma, en dan voor die andere gewoon Nummer.Floor() pakken? Lijkt me wat minder werk dan allerhande casts en split e.d uitvoeren. :)

[...]

Dan moet je het waarschijnlijk ook weer terug gaan casten van string naar int oid.
Hangt er vanaf of je er verder mee wilt gaan rekenen ;).

En verder gaf de TS niet aan in wat voor soort variabelen hij de getallen wilde hebben...

[ Voor 10% gewijzigd door Verwijderd op 11-07-2008 21:23 ]

Pagina: 1