Jeg ved ikke om der er en smartere måde.
men jeg har fiflet lidt med det og jeg tror denne her er rimelig skudsikker.
- <?php
- $formats[] = "1000";
- $formats[] = "1.000";
- $formats[] = "1,000";
- $formats[] = "1,000.00";
- $formats[] = "1.000,00";
- $formats[] = "1.000.000";
- $formats[] = "1,000,000";
- $formats[] = "10.00";
- $formats[] = "10,00";
-
- foreach($formats as $val){
- $delimiter = null;
- $delimiter = substr($val, - 3, 1);
- if (is_int($delimiter)) $delimiter = null;
- $val = str_replace(array_diff(array(',','.'),array($delimiter)),'',$val);
- echo 'del: '.$delimiter .' - '.number_format($val, 2, ',', '').'<br />';
- }
- ?>
Dette kan dog godt give problemer hvis man bruger samme delimiter til tusind som man gør til decimaler en anden måde kunne være at sætte en bolsk værdi hvis substr($val,-3,1) er . eller , (der eksistere decimaler) og herefter så slette alle forekomster af , og . og herefter dividere med 100 hvis der var decimaler.
Indlæg senest redigeret d. 08.10.2010 22:59 af Bruger #13429