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 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 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 Link to comment https://forums.phpfreaks.com/topic/45833-string-to-float/#findComment-222981 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.