过渡期间格式编号为小数点后一位? (d3.js)

时间:2016-08-22 16:41:45

标签: javascript d3.js

我尝试使用d3.js格式化但我很难将数字转换为只能转换到一个小数位。

请参阅下面的示例;

http://plnkr.co/edit/bEpl8wbA3kzsyakGNJZR?p=preview

在整个过渡期间以及最后,我希望它只能到一个小数位,所以在我的例子结尾处应该显示4.4而不是4.4162。

这是我的代码;

var formatPercent = d3.format("1r");
var start_val = 0;

var data = 4.4162


d3.selectAll(".textTransition")
  .append("div")
  .text(start_val)
  .attr("class", "percentage")
  .transition()
  .duration(1200)
  .tween(".percentage", function(d) {
    var i = d3.interpolate(0, data);
    return function(t) {
      d3.select(this).text(formatPercent(i(t)));
    };
  });

我正在使用d3 v3 btw。

希望有人可以提供帮助!

由于

2 个答案:

答案 0 :(得分:2)

您可以通过更改行

来完成此操作
PSModulePath

d3.select(this).text(formatPercent(i(t)));

以下

d3.select(this).text(parseFloat(formatPercent(i(t))).toFixed(1));

做出改变。

答案 1 :(得分:0)

var roundedData = (Math.round(data * 10))/10;

将小数点移动一个位置,然后对其进行舍入,然后将小数位移回原位。

这有帮助吗?