Hej Öh? Hej Det låter som du har det klassiska "regional settings" problemet. Håller med om allt som skrivits ovan. Kör en raklinjig filosofi i all matematik SKALL Nej, då tvingar du ju i alla fall den stackars användaren att alltid använda decimalpunkt. Alltså håller du inte med om det som skrivits ovan? Hejsan alla som svaraFormat av tal
Jag får inte till detta !
Jag vill ändra detta tal 14325 till 143.25
Har testat med round och format men får helt enkel inte till detta.
Någon med förslag och åtgärd?
Hälsningar
TobbeSv: Format av tal
Tal/100, kanske?
Så måste det ju vara flyttal naturligtvis. Och i värsta fall så kan du behöva en Format(Tal/100, "0.00"), också, så att du inte får med artefakter från flyttalen.Sv: Format av tal
Det funkar men jag skall räkna ihop två tal och det går inte med komma tecken
måste få till en pungt istället.
Fel
145,23 * 88.90 = 12,890,50
Rätt
145.23 * 88.90 = 12,910,94
/TobbeSv: Format av tal
Du måste gå igenom din kod och göra vissa förändringar:
INTERNT I PROGRAMMET: Använd ALLTID VB:s interna format (US English) i "interna" funktioner, dvs VAL(), STR() osv osv. Även när du sparar saker i fil och i registryt för internt bruk. Detta för att du inte vill att programmet ska krascha bara pga språkinställningarna...
MOT ANVÄNDAREN: I användarinterfacet ska du använda funktioner som tar hänsyn till språkinställningarna, dessa funktioner är CStr(), CDbl() osv osv.
Försök göra så att detta blir separerat i programmet, jag brukar ha en "GetAllValues" och "SetAllValues" som gör konverteringen till/från textboxar mm. som syns i användarinterfacet. Du kommer att bli gråhårig om du börjar byta ut "," mot "." i strängrepresentationen av tal (för att inte tala om ifall du behöver datumfunktioner, då lär du bryta ihop totalt :-)
Alltså: Använd funkioner som visar tal/datum/valuta mm i användarens format ENDAST i användarinterfacet.
Happy hacking
/Mikael AnderssonSv: Format av tal
du använda .(punkt) som decimal avskiljare det får du med Val.
I TextBoxar KeyPress och matematik inmatning har jag alltid
If KeyAscii = 44 Then KeyAsii = 46 ' (,) komma blir (.)punkt.Sv: Format av tal
Det är ungefär som att tvinga på användaren ett annat datumformat... hur populärt skulle det vara? Tänk dig att du kör med svensk version av allting, om användaren klipper ut data från ditt program och klistrar in det i t.ex. en svensk version av Excel, då kommer det att skita sig totalt. Du har ju tvingat fram decimalpunkt "." och det fattar ju inte en svensk Excel.
Jag tycker att man ska acceptera att GUI:t (användarinterfacet) kan använda vilket skumt format som helst och sedan göra översättningen internt i programmet.
Förresten: Det finns en bugg i "regional settings": Om man bara ändrar "Decimal symbol" under fliken "Number" så fattar inte systemet det... bara så ni vet. Slutsatser kan ni ju dra själva...
/MickeSv: Format av tal
Jag gorde detta och det funkar
Dim slön
slön = Format(MSFlexGrid2.TextMatrix(1, 2) / 100, "0.00")
slön = Replace(slön, ",", ".")
slön = Val(StatusBar1.Panels(6).Text) * Val(slön)
slön = FormatCurrency(slön, 2, -1, -1)
/Tobbe