[gnome-calculator] Fix answer representation in programmer mode
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calculator] Fix answer representation in programmer mode
- Date: Tue, 11 Dec 2012 02:30:18 +0000 (UTC)
commit 39c83581328229aad08bdfc34729c7719ca25fec
Author: PioneerAxon <arth svnit gmail com>
Date: Tue Oct 16 02:39:00 2012 +0530
Fix answer representation in programmer mode
src/serializer.vala | 33 +++++++++++++++++++++++++++++----
1 files changed, 29 insertions(+), 4 deletions(-)
---
diff --git a/src/serializer.vala b/src/serializer.vala
index da86069..49bfc46 100644
--- a/src/serializer.vala
+++ b/src/serializer.vala
@@ -61,10 +61,35 @@ public class Serializer : Object
case DisplayFormat.AUTOMATIC:
int n_digits = 0;
var s0 = cast_to_string (x, ref n_digits);
- if (n_digits <= leading_digits)
- return s0;
- else
- return cast_to_exponential_string (x, false, ref n_digits);
+ /* Decide leading digits based on number_base. Support 64 bits in programming mode. */
+ switch (get_base ())
+ {
+ /* 64 digits for binary mode. */
+ case 2:
+ if (n_digits <= 64)
+ return s0;
+ else
+ return cast_to_exponential_string (x, false, ref n_digits);
+ /* 22 digis for octal mode. */
+ case 8:
+ if (n_digits <= 22)
+ return s0;
+ else
+ return cast_to_exponential_string (x, false, ref n_digits);
+ /* 16 digits for hexadecimal mode. */
+ case 16:
+ if(n_digits <= 16)
+ return s0;
+ else
+ return cast_to_exponential_string (x, false, ref n_digits);
+ /* Use default leading_digits for base 10 numbers. */
+ case 10:
+ default:
+ if (n_digits <= leading_digits)
+ return s0;
+ else
+ return cast_to_exponential_string (x, false, ref n_digits);
+ }
case DisplayFormat.FIXED:
int n_digits = 0;
return cast_to_string (x, ref n_digits);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]