10. januar 2006 - 12:05
Der er
10 kommentarer og 1 løsning
Formater double som regional settings
Hej eksperter, har en klient der skal vise nogle double værdier. Disse skal formateres efter regional settings. Jeg har prøvet Double amount = new Double(345987.246); NumberFormat numberFormatter; String amountOut; numberFormatter = NumberFormat.getNumberInstance(Locale.getDefault()); amountOut = numberFormatter.format(amount); System.out.println(amountOut + " " + Locale.getDefault().toString()); Som giver mig 345.987,246 da_DK Men min decimal seperator er angivet til punktum ikke komma i Regional settings i Windows. Køre Java 1.4.2_06
Annonceindlæg fra QNAP
10. januar 2006 - 12:39
#1
resultatet er logisk Locale.getDefault() henter dansk locale fordi din PC generelt er sat til dansk NumberFormat.getNumberInstance(Locale.getDefault()) henter så en formatering til dansk intet kigger på dine faktiske settings
10. januar 2006 - 12:41
#2
det løser selvfølgelig ikke dit problem jeg ved ikke engang om dit problem kan løses i Java
10. januar 2006 - 13:07
#3
Troede Locale.getDefault() var mine valgte settings damn. Så løsningen ville være at lave mit eget Locale som folk skal enes om.... Oh No....
10. januar 2006 - 13:14
#4
hvis du kigger på Locale klassen så vil du se at den kun indeholder land, sprog, diverse forkortelser for land etc. - overforsimplet indeholder Locale.getDefault() en String med "da-DK" alt det spændende slåes op ved hjælp af Locale men indeholdes ikke i Locale
10. januar 2006 - 14:28
#5
Ok med locale mente jeg egentlig bare nogle formaterings masker. Kunne man rode sig ud i noget JNI eller er det bare at komplicere tingene?
10. januar 2006 - 14:42
#6
hvsu du kan find einfo i registry så er et JNI kald til at hente det lige ud af landevejen
10. januar 2006 - 14:43
#7
hvis du kan finde info i ...
10. januar 2006 - 14:48
#8
HKEY_USERS/.Default/Control Panel/International/sDecimal, er det noget du ligge inde med som exempel? :-)
07. april 2006 - 04:57
#9
jeg har det her stykke C kode liggende: void getinfo(char *key, char *name, char *info) { HKEY hk; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hk) == ERROR_SUCCESS) { DWORD valuelen,type; BYTE value[1024]; valuelen = sizeof(value); if(RegQueryValueEx(hk, name, NULL, &type, value, &valuelen) == ERROR_SUCCESS) { strcpy(info,(char *)value); } } RegCloseKey(hk); } det bør kunne wrappes i noget JNI
19. april 2006 - 09:51
#10
Smid et svar Arne, desværre har jeg ikke haft tid til at rode med det så en mindre kompliceret løsning er blevet implementeret.
19. april 2006 - 12:46
#11
ok
Kurser inden for grundlæggende programmering