2016-08-22 2 views
0

Я пытаюсь работать с форматированием 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.

Надеюсь, кто-то может помочь!

Благодаря

+1

должен, вероятно, использовать формат '0,1f' – reptilicus

+1

Формат формата' r' предназначен для значительных цифр, а не для фиксированных точек. – reptilicus

ответ

1

Вы можете сделать это, изменив строку

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

в

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

следующим

parseFloat(number goes here).toFixed(1); 

будучи изменения.

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

Перемещает десятичную одно место, округляет он перемещает десятичного туда, где она должна быть.

Помогло ли это?

Смежные вопросы