首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中,小数位只有两个零的数字在转换为字符串时会丢失双零吗?为什么?

在Javascript中,小数位只有两个零的数字在转换为字符串时会丢失双零吗?为什么?
EN

Stack Overflow用户
提问于 2020-04-04 15:32:13
回答 1查看 167关注 0票数 1

我正在开发一个web应用程序,在其中我需要连接一些数字作为字符串格式

其中一个数字如果是整数,则小数点后需要00 (例如15.00)

但当我将它与其他数字合并在一起时,00丢失了(例如15.00 => 15)

举个例子:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-04 15:35:02

您可以通过使用toFixed()来实现这一点,例如:

代码语言:javascript
复制
const concated = `${price.toFixed(2)}${period}${CC}`;

代码语言:javascript
复制
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"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61025051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档