javascript - d3.format 在变量上使用千位分隔符?
你好,我又一次卡在第3天了...
我想知道如何在变量上使用千分位分隔符,我找到的所有示例似乎都是针对静态数据的。
到目前为止,我尝试过以下方法:
d3.csv("OrderValueToday.csv", function(obj) {
var text = 'Today = £';
var totalSales = text + d3.format(",") + obj[0].Today;
svgLabel = d3.select("#label").append("h2")
.text (totalSales);
});
然而,它只是把大量内容输出到网页上,就是这样:
Today = £function (n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a; if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}20000
所以我想做的就是能够让 totalSales 的值显示千位分隔符,比如 20,000,我尝试的其他方法都没有效果。我看过这个 https://github.com/mbostock/d3/wiki/Formatting,但没有看到适合我这种情况的方法。
任何帮助都将不胜感激。谢谢
答案#1
指定 d3.format 会返回一个格式化函数,然后你必须 调用 该函数,将要格式化的数字作为参数传入:
var myNumber = 22400;
d3.format(',')(myNumber); // returns '22,400'
有时候你会看到一个格式化函数被存储为一个变量,如下所示:
var commaFormat = d3.format(',');
commaFormat(1234567); // returns '1,234,567'
在你的情况下,你可以做如下操作:
var totalSales = text + d3.format(',')(obj[0].Today);
