D3.JS:格式为货币欧元

Alg*_*_NL 2 d3.js

D3维基描述格式,以及它是如何可能的数字格式使用美元价值d3.format("$.,2f");.但是,使用d3.format("€,.2f");将数字格式化为欧元值不起作用.这样做的适当方法是什么?

Meh*_*hdi 6

2016-07-06编辑:以下答案对d3 v3.x有效.从v3 4.x开始,d3.formatLocale看起来与之相当d3.locale.


应该保留美元符号,因为它意味着"货币".

您需要做的是使用函数定义语言环境(参见文档)d3.locale()(默认为d3 en-US).

下面是一个示例,其中en-US为所有属性保留参数,但货币除外,其中$前缀被后缀替换(使用:) "currency": ["", "€"]:

var NL = d3.locale ({
  "decimal": ".",
  "thousands": ",",
  "grouping": [3],
  "currency": ["", "€"],
  "dateTime": "%a %b %e %X %Y",
  "date": "%m/%d/%Y",
  "time": "%H:%M:%S",
  "periods": ["AM", "PM"],
  "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
})
Run Code Online (Sandbox Code Playgroud)

然后你可以用NL.numberFormat("$,.2f")数字格式化为欧元.

工作演示.

有关此问题的d3.locale用法的更多信息.