Skip to content

Commit ad9c197

Browse files
authored
Increase precision for values in data table (#6255)
Currently in data table, large integers are shown in an abbreviated format e.g. 3.14e+6, which is not meaningful for numeric metrics such as `weight`. Googlers, see b/274255386 and POC cl/518330666 for more information.
1 parent fa57361 commit ad9c197

File tree

4 files changed

+18
-16
lines changed

4 files changed

+18
-16
lines changed

tensorboard/webapp/widgets/data_table/data_table_component.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ export class DataTableComponent implements OnDestroy {
8787
if (selectedStepRunData.VALUE === undefined) {
8888
return '';
8989
}
90-
return numberFormatter.formatShort(selectedStepRunData.VALUE as number);
90+
return intlNumberFormatter.formatShort(
91+
selectedStepRunData.VALUE as number
92+
);
9193
case ColumnHeaderType.STEP:
9294
if (selectedStepRunData.STEP === undefined) {
9395
return '';
@@ -112,14 +114,14 @@ export class DataTableComponent implements OnDestroy {
112114
if (selectedStepRunData.SMOOTHED === undefined) {
113115
return '';
114116
}
115-
return numberFormatter.formatShort(
117+
return intlNumberFormatter.formatShort(
116118
selectedStepRunData.SMOOTHED as number
117119
);
118120
case ColumnHeaderType.VALUE_CHANGE:
119121
if (selectedStepRunData.VALUE_CHANGE === undefined) {
120122
return '';
121123
}
122-
return numberFormatter.formatShort(
124+
return intlNumberFormatter.formatShort(
123125
Math.abs(selectedStepRunData.VALUE_CHANGE as number)
124126
);
125127
case ColumnHeaderType.START_STEP:

tensorboard/webapp/widgets/data_table/data_table_test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,18 +167,18 @@ describe('data table', () => {
167167
{
168168
id: 'someid',
169169
RUN: 'run name',
170-
VALUE: 3,
170+
VALUE: 31415926535,
171171
STEP: 1,
172172
RELATIVE_TIME: 123,
173173
VALUE_CHANGE: -20,
174174
START_STEP: 5,
175175
END_STEP: 30,
176176
START_VALUE: 13,
177177
END_VALUE: 23,
178-
MIN_VALUE: 1,
179-
MAX_VALUE: 500,
178+
MIN_VALUE: 0.12345,
179+
MAX_VALUE: 89793238462,
180180
PERCENTAGE_CHANGE: 0.3,
181-
SMOOTHED: 2,
181+
SMOOTHED: 3.14e10,
182182
},
183183
],
184184
});
@@ -187,7 +187,7 @@ describe('data table', () => {
187187

188188
// The first header should always be blank as it is the run color column.
189189
expect(dataElements[0].nativeElement.innerText).toBe('');
190-
expect(dataElements[1].nativeElement.innerText).toBe('3');
190+
expect(dataElements[1].nativeElement.innerText).toBe('31,415,926,535');
191191
expect(dataElements[2].nativeElement.innerText).toBe('run name');
192192
expect(dataElements[3].nativeElement.innerText).toBe('1');
193193
expect(dataElements[4].nativeElement.innerText).toBe('123 ms');
@@ -202,16 +202,16 @@ describe('data table', () => {
202202
expect(dataElements[7].nativeElement.innerText).toBe('30');
203203
expect(dataElements[8].nativeElement.innerText).toBe('13');
204204
expect(dataElements[9].nativeElement.innerText).toBe('23');
205-
expect(dataElements[10].nativeElement.innerText).toBe('1');
206-
expect(dataElements[11].nativeElement.innerText).toBe('500');
205+
expect(dataElements[10].nativeElement.innerText).toBe('0.1235');
206+
expect(dataElements[11].nativeElement.innerText).toBe('89,793,238,462');
207207
expect(dataElements[12].nativeElement.innerText).toBe('30%');
208208
expect(dataElements[12].queryAll(By.css('mat-icon')).length).toBe(1);
209209
expect(
210210
dataElements[12]
211211
.queryAll(By.css('mat-icon'))[0]
212212
.nativeElement.getAttribute('svgIcon')
213213
).toBe('arrow_upward_24px');
214-
expect(dataElements[13].nativeElement.innerText).toBe('2');
214+
expect(dataElements[13].nativeElement.innerText).toBe('31,400,000,000');
215215
});
216216

217217
it('does not displays headers or data when header is disabled', () => {

tensorboard/webapp/widgets/line_chart_v2/lib/formatter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export const numberFormatter: Formatter = {
9393
*/
9494

9595
const IntlNumberFormatter = new Intl.NumberFormat(undefined, {
96-
maximumFractionDigits: 3,
96+
maximumFractionDigits: 4,
9797
});
9898

9999
function formatIntlNumber(x: number): string {

tensorboard/webapp/widgets/line_chart_v2/lib/formatter_test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,16 +176,16 @@ describe('line_chart_v2/lib/formatter test', () => {
176176
{name: 'formatLong', fn: intlNumberFormatter.formatLong},
177177
]) {
178178
describe(`#${name}`, () => {
179-
it('formats numbers and keeps three decimal places', () => {
179+
it('formats numbers and keeps four decimal places', () => {
180180
expect(fn(1)).toBe('1');
181181
expect(fn(5)).toBe('5');
182182
expect(fn(-100.4)).toBe('-100.4');
183183
expect(fn(3.01)).toBe('3.01');
184184
expect(fn(9999)).toBe('9,999');
185-
expect(fn(9999.9123)).toBe('9,999.912');
185+
expect(fn(9999.91234)).toBe('9,999.9123');
186186
expect(fn(0.09)).toBe('0.09');
187-
expect(fn(0.0005)).toBe('0.001');
188-
expect(fn(0.00005)).toBe('0');
187+
expect(fn(0.00005)).toBe('0.0001');
188+
expect(fn(0.000005)).toBe('0');
189189
expect(fn(10001)).toBe('10,001');
190190
expect(fn(-10000)).toBe('-10,000');
191191
expect(fn(-1.004e6)).toBe('-1,004,000');

0 commit comments

Comments
 (0)