MadTechie Posted April 6, 2007 Share Posted April 6, 2007 Just a quick one here i have a string entered by the user, which is a currency ie £10.50 now the problem is if i add 0.10 to that and it messes up.. now i could write my own routine but wonder if someone had a snippet or a easy/better way of doing this of course i would prefer the formatting to be done by money_format, heres some example code <?php $cash = 10.50; $cash += .10; echo "$cash<br />"; //result = 10.6 setlocale(LC_MONETARY, 'en_UK'); $cash = 10.50; $cash += .10; $cash = money_format('%=.2i', $cash); echo "$cash<br />"; //result = 10.60 <--- Well of course thats worked // BUT WHAT ABOUT THESE $cash = "£10.50"; $cash += .10; echo "$cash<br />"; //result = 0.1 $cash = "50p"; $cash += .10; echo "$cash<br />"; //result = 50.1 setlocale(LC_MONETARY, 'en_UK'); $cash = "£10.50"; $cash += "0.10"; $cash = money_format('%=.2i', $cash); echo "$cash<br />"; //result = 0.10 setlocale(LC_MONETARY, 'en_UK'); $cash = "50p"; $cash += "0.10"; $cash = money_format('%=.2i', $cash); echo "$cash<br />"; //result = 50.10 ?> basically can i convert "£10.50" into 10.50 would be nice to have 50p to 0.50 as well Quote Link to comment https://forums.phpfreaks.com/topic/45833-string-to-float/ Share on other sites More sharing options...
joquius Posted April 6, 2007 Share Posted April 6, 2007 Hmm $str = preg_replace ("/[^0-9]([0-9]+)/", "$1", $str); // for pounds $str = preg_replace ("/([0-9]{1,2})[^0-9]/", "0.$1", $str); // for pence This is of course assuming the format will be pound(digits) (digits)pence Quote Link to comment https://forums.phpfreaks.com/topic/45833-string-to-float/#findComment-222716 Share on other sites More sharing options...
MadTechie Posted April 6, 2007 Author Share Posted April 6, 2007 thanx for the reply joquius, i have been working on a routine using regexp to convert currency to a float but it seams to be more complex by the minute, i'll post my final draft and hope someone can clean it up Quote Link to comment https://forums.phpfreaks.com/topic/45833-string-to-float/#findComment-222981 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.