Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(779)

Side by Side Diff: pkg/intl/number_format.dart

Issue 10829459: Deprecate Math object in corelib in favor of dart:math library. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/intl/lib/date_format_helpers.dart ('k') | pkg/unittest/interactive_html_config.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library("number_format"); 5 #library("number_format");
6 6
7 #import('dart:math');
8
7 #import("intl.dart"); 9 #import("intl.dart");
8 #import("number_symbols.dart"); 10 #import("number_symbols.dart");
9 #import("number_symbols_data.dart"); 11 #import("number_symbols_data.dart");
10 12
11 class NumberFormat { 13 class NumberFormat {
12 /** Variables to determine how number printing behaves. */ 14 /** Variables to determine how number printing behaves. */
13 // TODO(alanknight): If these remain as variables and are set based on the 15 // TODO(alanknight): If these remain as variables and are set based on the
14 // pattern, can we make them final? 16 // pattern, can we make them final?
15 String _negativePrefix = '-'; 17 String _negativePrefix = '-';
16 String _positivePrefix = ''; 18 String _positivePrefix = '';
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 } 106 }
105 107
106 /** Format the number in exponential notation. */ 108 /** Format the number in exponential notation. */
107 _formatExponential(num number) { 109 _formatExponential(num number) {
108 if (number == 0.0) { 110 if (number == 0.0) {
109 _formatFixed(number); 111 _formatFixed(number);
110 _formatExponent(0); 112 _formatExponent(0);
111 return; 113 return;
112 } 114 }
113 115
114 var exponent = (Math.log(number) / Math.log(10)).floor(); 116 var exponent = (log(number) / log(10)).floor();
115 var mantissa = number / Math.pow(10, exponent); 117 var mantissa = number / pow(10, exponent);
116 118
117 if (_minimumIntegerDigits < 1) { 119 if (_minimumIntegerDigits < 1) {
118 exponent++; 120 exponent++;
119 mantissa /= 10; 121 mantissa /= 10;
120 } else { 122 } else {
121 exponent -= _minimumIntegerDigits - 1; 123 exponent -= _minimumIntegerDigits - 1;
122 mantissa *= Math.pow(10, _minimumIntegerDigits - 1); 124 mantissa *= pow(10, _minimumIntegerDigits - 1);
123 } 125 }
124 _formatFixed(number); 126 _formatFixed(number);
125 _formatExponent(exponent); 127 _formatExponent(exponent);
126 } 128 }
127 129
128 /** 130 /**
129 * Format the exponent portion, e.g. in "1.3e-5" the "e-5". 131 * Format the exponent portion, e.g. in "1.3e-5" the "e-5".
130 */ 132 */
131 void _formatExponent(num exponent) { 133 void _formatExponent(num exponent) {
132 _add(symbols.EXP_SYMBOL); 134 _add(symbols.EXP_SYMBOL);
133 if (exponent < 0) { 135 if (exponent < 0) {
134 exponent = -exponent; 136 exponent = -exponent;
135 _add(symbols.MINUS_SIGN); 137 _add(symbols.MINUS_SIGN);
136 } else if (_useSignForPositiveExponent) { 138 } else if (_useSignForPositiveExponent) {
137 _add(symbols.PLUS_SIGN); 139 _add(symbols.PLUS_SIGN);
138 } 140 }
139 _pad(_minimumExponentDigits, exponent.toString()); 141 _pad(_minimumExponentDigits, exponent.toString());
140 } 142 }
141 143
142 /** 144 /**
143 * Format the basic number portion, inluding the fractional digits. 145 * Format the basic number portion, inluding the fractional digits.
144 */ 146 */
145 void _formatFixed(num number) { 147 void _formatFixed(num number) {
146 // Round the number. 148 // Round the number.
147 var power = Math.pow(10, _maximumFractionDigits); 149 var power = pow(10, _maximumFractionDigits);
148 var intValue = number.truncate().toInt(); 150 var intValue = number.truncate().toInt();
149 var multiplied = (number * power).round(); 151 var multiplied = (number * power).round();
150 var fracValue = (multiplied - intValue * power).floor().toInt(); 152 var fracValue = (multiplied - intValue * power).floor().toInt();
151 var fractionPresent = _minimumFractionDigits > 0 || fracValue > 0; 153 var fractionPresent = _minimumFractionDigits > 0 || fracValue > 0;
152 154
153 // On dartj2s the integer part may be large enough to be a floating 155 // On dartj2s the integer part may be large enough to be a floating
154 // point value, in which case we reduce it until it is small enough 156 // point value, in which case we reduce it until it is small enough
155 // to be printed as an integer and pad the remainder with zeros. 157 // to be printed as an integer and pad the remainder with zeros.
156 var paddingDigits = new StringBuffer(); 158 var paddingDigits = new StringBuffer();
157 while (intValue is! int) { 159 while (intValue is! int) {
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 } 263 }
262 264
263 /** 265 /**
264 * Returns the suffix for [x] based on wether it's positive or negative. 266 * Returns the suffix for [x] based on wether it's positive or negative.
265 * In en_US there are no suffixes for positive or negative. 267 * In en_US there are no suffixes for positive or negative.
266 */ 268 */
267 String _signSuffix(num x) { 269 String _signSuffix(num x) {
268 return x.isNegative() ? _negativeSuffix : _positiveSuffix; 270 return x.isNegative() ? _negativeSuffix : _positiveSuffix;
269 } 271 }
270 } 272 }
OLDNEW
« no previous file with comments | « pkg/intl/lib/date_format_helpers.dart ('k') | pkg/unittest/interactive_html_config.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698