From 8a9cad44a57f1e0057c127ced5078d7e722b9cc8 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Mon, 28 Feb 2011 21:34:36 +0000 Subject: [PATCH] Avoid sprintf decimal-point localization --- util.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/util.cpp b/util.cpp index 8518e2797..8a2f9d525 100644 --- a/util.cpp +++ b/util.cpp @@ -313,7 +313,12 @@ void ParseString(const string& str, char c, vector& v) string FormatMoney(int64 n, bool fPlus) { - string str = strprintf("%.08f", double(n > 0 ? n : -n)/double(COIN)); + // Note: not using straight sprintf here because we do NOT want + // localized number formatting. + int64 n_abs = (n > 0 ? n : -n); + int64 quotient = n_abs/COIN; + int64 remainder = n_abs%COIN; + string str = strprintf("%"PRI64d".%08"PRI64d, quotient, remainder); // Right-trim excess 0's before the decimal point: int nTrim = 0;