using std::string;
using std::wstring;
+/** @param v Numeric value as an ASCII string */
static
string
make_raw (string v)
{
struct lconv* lc = localeconv ();
- boost::algorithm::replace_all (v, lc->decimal_point, ".");
+ /* thousands_sep may be . so remove them before changing decimal points */
boost::algorithm::replace_all (v, lc->thousands_sep, "");
+ boost::algorithm::replace_all (v, lc->decimal_point, ".");
return v;
}
return locale_convert<int> (make_local (v), precision, fixed);
}
+template <>
+long
+dcp::raw_convert (string v, int precision, bool fixed)
+{
+ return locale_convert<long> (make_local (v), precision, fixed);
+}
+
+template <>
+long long
+dcp::raw_convert (string v, int precision, bool fixed)
+{
+ return locale_convert<long long> (make_local (v), precision, fixed);
+}
+
template <>
int
dcp::raw_convert (char const * v, int precision, bool fixed)