Toon posts:

[VB] format function XP versus NT

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik in visual basic een format functie om valuta in het juiste formaat te krijgen.

code:
1
aryRecordReg(25) = Format(aryRecordReg(25), "#,##0.00;-#,##0.00")


Als ik mijn programma run op windows xp dan is de uitkomst goed. Als de waarde in de array bijvoorbeeld 3245.8 is dan zet hij deze om in 3.245,80. Run ik dit programma onder NT dan is de uitkomst totaal anders. Bijvoorbeeld 3,245.80. Dit geld zowel als ik de format functie toepas op een Double als een String. Hoe kan ik er zeker van zijn dat de output van de format functie altijd gelijk is? Ik heb dezelfde problemen ervaren als ik de variabelen declareer als currency en deze bewerk met de formatcurrency functie.

[ Voor 5% gewijzigd door Verwijderd op 21-12-2004 17:23 ]


  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 18-05 10:28
Komt doordat het ene systeem ingesteld is op Engelse taal-set, dit is dus: 123,456.00 en Nederlands is; 123.456,00.

Om dit gelijk te houden zou je bijvoorbeeld de Str() functie kunnen gebruiken om er een string van te maken. Deze zet er altijd een punt tussen, de rest moet je dan dus zelf een leuk formaatje geven.

Je kan ook op de PC de taalinstellingen veranderen en overal op Nederlands zetten, maar das "nogal lelijk programmeerwerk" om dat van je klanten te verwachten.

[ Voor 36% gewijzigd door Kix@$$ op 21-12-2004 17:27 ]


Verwijderd

Topicstarter
Als ik de inhoud omzet in een string. Bijvoorbeeld:

code:
1
2
strProductTotaal = CStr(intProductTotaal)
strProductTotaal = Format(strProductTotaal, "#,##0.00;-#,##0.00")


In bovenstaand voorbeeld heb ik hetzelfde probleem. De variabele intProductTotaal is een Double en wordt met CStr omgezet in een string, nadat de format er over heen gaat is de uitkost even problematisch.

  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 18-05 10:28
Verwijderd schreef op dinsdag 21 december 2004 @ 17:31:
Als ik de inhoud omzet in een string. Bijvoorbeeld:

code:
1
2
strProductTotaal = CStr(intProductTotaal)
strProductTotaal = Format(strProductTotaal, "#,##0.00;-#,##0.00")


In bovenstaand voorbeeld heb ik hetzelfde probleem. De variabele intProductTotaal is een Double en wordt met CStr omgezet in een string, nadat de format er over heen gaat is de uitkost even problematisch.
Als je echt wilt dat het altijd vast een punt is moet je de format functie gewoon helemaal vergeten en dit zelf gaan doen.
Dus zoiets als:
code:
1
2
3
4
5
6
Function OwnFormat(ByVal curValue as Currency)
    Dim strValue As Sting
    strValue = CStr(Round(curValue, 2))
    
    ' Nu zelf nog een komma om de 3 getallen zetten...
End Function