我想知道是否可以在 Javascript 模板字符串中格式化数字,例如:
var n = 5.1234;
console.log(`This is a number: $.2d{n}`);
// -> 5.12
或者可能
var n = 5.1234;
console.log(`This is a number: ${n.toString('.2d')}`);
// -> 5.12
该语法显然不起作用,它只是我正在寻找的事物类型的说明。
我知道 underscore.string
中有像 sprintf
这样的工具,但这似乎是 JS 应该能够开箱即用的东西,特别是考虑到模板字符串。
编辑
如上所述,我已经知道第三方工具(例如 sprintf)和自定义函数可以执行此操作。类似的问题(例如 JavaScript equivalent to printf/String.Format )根本没有提到模板字符串,可能是因为它们是在 ES6 模板字符串出现之前就被问到的。我的问题是针对 ES6 的,与实现无关。如果是这种情况,我很高兴接受“不,这是不可能的”的答案,但是最好的是有关提供此功能的新 ES6 功能的信息,或者了解此类功能是否在其上方式。
最佳答案
不,ES6 没有引入任何新的数字格式化功能,您将不得不接受现有的 .toExponential(fractionDigits)
, .toFixed(fractionDigits)
, .toPrecision(precision)
, .toString([radix])
和 toLocaleString(…)
(不过,它已更新为可选择支持 ECMA-402 Standard )。
模板字符串与数字格式无关,它们只是对函数调用(如果标记)或字符串连接(默认)进行脱糖。
如果这些 Number
方法对您来说不够,您将不得不推出自己的方法。如果您愿意,您当然可以将格式化函数编写为模板字符串标记。
关于javascript - 模板字符串中的数字格式(Javascript - ES6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31746166/