Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] Floating point internationalization

Pagina: 1
Acties:
  • 142 views sinds 30-01-2008
  • Reageer

  • Gardocki
  • Registratie: Oktober 2000
  • Niet online
Ik wil een float point parsen waarbij ik een . moet gebruiken echter ik krijg een , . Dus ik krijg 1.32453 als string dat parse ik naar double door op te geven dat de numberdecimalseparator een . is. Dit wordt geaccepteerd maar als ik dan mn double aanspreek is de . weer een ,

Hoe kan ik dit opvangen.

They made me do it.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
De punt is geen komma zoals je in je laatste zin zegt. De punt wordt gepresentéérd als een komma, dat is wat anders. Omdat je een NL (waarschijnlijk) instelling hebt wordt op het moment dat er decimalen moeten worden weergegeven het scheidingsteken van je culture gebruikt (en dat is dus een komma). "Intern", maar dat begrijp je vast wel, wordt er niet eens een punt of komma opgeslagen, maar gewoon de "sign", mantissa, radix en exponent.

http://nl.wikipedia.org/wiki/Drijvendekommagetal
http://en.wikipedia.org/wiki/Floating_point

[ Voor 83% gewijzigd door RobIII op 07-12-2005 16:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:06
Dat hangt af van je regional settings in windows.

Kijk eens naar de NumberFormatInfo class en naar de System.Threading.Thread.CurrentThread.CurrentCulture.

https://fgheysels.github.io/


  • Gardocki
  • Registratie: Oktober 2000
  • Niet online
Momenteel staat mn regional settings op NL, op US werkt het wel maar ik kan op deze pcs niet de locale aanpassen. Kan ik dit opvangen in mn code?

They made me do it.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:06
Zoals RobIII al zegt, wordt die punt intern gebruikt als scheidingsteken.
Wil je die float met een komma gaan outputten, dan zal je zowiezo een ToString() method er moeten op loslaten.
Kijk eens naar de verschillende overloads van ToString() en ontdek dat een van die overloads een IFormatProvider neemt als argument.
Kijk dan naar de NumberFormatInfo class, en zie dat die de IFormatProvider interface implementeert, en je bent er.

https://fgheysels.github.io/


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Tom S. schreef op woensdag 07 december 2005 @ 16:10:
Momenteel staat mn regional settings op NL, op US werkt het wel maar ik kan op deze pcs niet de locale aanpassen. Kan ik dit opvangen in mn code?
Nogmaals: Het gaat om de representatie van getallen. Je kunt dit dus inderdaad aanpassen door je regional settings aan te passen, OF om er voor te zorgen dat je de representatie "zelf" afhandelt (forceert).

@whoami: Damn you :P

[ Voor 6% gewijzigd door RobIII op 07-12-2005 16:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Gardocki
  • Registratie: Oktober 2000
  • Niet online
whoami schreef op woensdag 07 december 2005 @ 16:15:
Zoals RobIII al zegt, wordt die punt intern gebruikt als scheidingsteken.
Wil je die float met een komma gaan outputten, dan zal je zowiezo een ToString() method er moeten op loslaten.
Kijk eens naar de verschillende overloads van ToString() en ontdek dat een van die overloads een IFormatProvider neemt als argument.
Kijk dan naar de NumberFormatInfo class, en zie dat die de IFormatProvider interface implementeert, en je bent er.
Inderdaad ik was vergeten om ToString te doen met mijn localization.
Bedankt.

They made me do it.


  • DoubleTweak
  • Registratie: September 2001
  • Laatst online: 13:58
Probeer eens in je parse naar double als IFormatProvider CultureInfo.InvariantCulture mee te geven.

Be like a duck. Calm on the surface, but always paddling like the dickens underneath.

Pagina: 1