Fix another rounding bug with SI-format.
Turns out 1400 * .001 is 1.4000000000000001, but 1400 / 1000 is 1.4.
This commit is contained in:
Родитель
c384fad0b3
Коммит
00bc3f05a7
|
@ -661,7 +661,7 @@ d3.format = function(specifier) {
|
||||||
// Apply the scale, computing it from the value's exponent for si format.
|
// Apply the scale, computing it from the value's exponent for si format.
|
||||||
if (scale < 0) {
|
if (scale < 0) {
|
||||||
var prefix = d3.formatPrefix(value, precision);
|
var prefix = d3.formatPrefix(value, precision);
|
||||||
value *= prefix.scale;
|
value = prefix.scale(value);
|
||||||
suffix = prefix.symbol;
|
suffix = prefix.symbol;
|
||||||
} else {
|
} else {
|
||||||
value *= scale;
|
value *= scale;
|
||||||
|
@ -730,12 +730,12 @@ d3.formatPrefix = function(value, precision) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function d3_formatPrefix(d, i) {
|
function d3_formatPrefix(d, i) {
|
||||||
|
var k = Math.pow(10, Math.abs(8 - i) * 3)
|
||||||
return {
|
return {
|
||||||
scale: Math.pow(10, (8 - i) * 3),
|
scale: i > 8 ? function(d) { return d / k; } : function(d) { return d * k; },
|
||||||
symbol: d
|
symbol: d
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TERMS OF USE - EASING EQUATIONS
|
* TERMS OF USE - EASING EQUATIONS
|
||||||
*
|
*
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -43,7 +43,7 @@ d3.format = function(specifier) {
|
||||||
// Apply the scale, computing it from the value's exponent for si format.
|
// Apply the scale, computing it from the value's exponent for si format.
|
||||||
if (scale < 0) {
|
if (scale < 0) {
|
||||||
var prefix = d3.formatPrefix(value, precision);
|
var prefix = d3.formatPrefix(value, precision);
|
||||||
value *= prefix.scale;
|
value = prefix.scale(value);
|
||||||
suffix = prefix.symbol;
|
suffix = prefix.symbol;
|
||||||
} else {
|
} else {
|
||||||
value *= scale;
|
value *= scale;
|
||||||
|
|
|
@ -12,9 +12,9 @@ d3.formatPrefix = function(value, precision) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function d3_formatPrefix(d, i) {
|
function d3_formatPrefix(d, i) {
|
||||||
|
var k = Math.pow(10, Math.abs(8 - i) * 3);
|
||||||
return {
|
return {
|
||||||
scale: Math.pow(10, (8 - i) * 3),
|
scale: i > 8 ? function(d) { return d / k; } : function(d) { return d * k; },
|
||||||
symbol: d
|
symbol: d
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ suite.addBatch({
|
||||||
assert.strictEqual(f(999.5), "999.5");
|
assert.strictEqual(f(999.5), "999.5");
|
||||||
assert.strictEqual(f(999500), "999.5k");
|
assert.strictEqual(f(999500), "999.5k");
|
||||||
assert.strictEqual(f(1000), "1k");
|
assert.strictEqual(f(1000), "1k");
|
||||||
|
assert.strictEqual(f(1400), "1.4k");
|
||||||
assert.strictEqual(f(1500.5), "1.5005k");
|
assert.strictEqual(f(1500.5), "1.5005k");
|
||||||
assert.strictEqual(f(.000001), "1μ");
|
assert.strictEqual(f(.000001), "1μ");
|
||||||
},
|
},
|
||||||
|
|
Загрузка…
Ссылка в новой задаче