我正在开发一个web应用程序,在其中我需要连接一些数字作为字符串格式
其中一个数字如果是整数,则小数点后需要00 (例如15.00)
但当我将它与其他数字合并在一起时,00丢失了(例如15.00 => 15)
举个例子:
const price = 15.00;
const period = 3;
const CC = 840;
const concated = `${price}${period}${CC}`;
console.log(concated);
const saltedHash = crypto.createHash('md5').update(`${concated}GhVT+6FySEgWVeUWCHLo2lks`).digest('hex');
post[0].saltedHash = saltedHash;
post[0].string = `${concated}GhVT+6FySEgWVeUWCHLo2lks`;现在的问题是,常量concated包含153840而不是15.003840
为什么会出现这个问题?
如何保存00?
发布于 2020-04-04 15:35:02
您可以通过使用toFixed()来实现这一点,例如:
const concated = `${price.toFixed(2)}${period}${CC}`;
const price = 15.00;
const period = 3;
const CC = 840;
const concated = `${price.toFixed(2)}${period}${CC}`;
console.log(concated);
问题是,当你使用template literal时,它会将数字转换成字符串,即String(15) === "15",而当你使用15..toFixed(2)时,它会“返回一个用定点表示法表示数字的字符串”。
因此,15..toFixed(2) === "15.00",即typeof 15.00.toFixed(2) === "string"
https://stackoverflow.com/questions/61025051
复制相似问题