NodeJS 在JS中显示跨度中的舍入数

pdkcd3nj  于 2023-04-20  发布在  Node.js
关注(0)|答案(2)|浏览(116)

我正在使用的一个工具是在智能镜子上显示室温。这行代码正在创建温度值:

var temperatureTextWrapper = document.createTextNode(
   zone.state.sensorDataPoints.insideTemperature.celsius + "°"
);

在此之后,var只是被附加到现有的span。默认情况下,该值包含两个小数位,例如25.76°C。但是,我希望将其四舍五入到一个小数位,甚至是完整的整数。
我已经尝试了.replace().slice()函数,但没有成功。最好的方法是什么?

3xiyfsfu

3xiyfsfu1#

您可以使用Math.round()四舍五入到最接近的整数。

var temperature = 25.76;

// Nearest integer
console.log( Math.round(temperature) )

// One decimal place
console.log( Math.round(temperature*10)/10 )

在您的情况下,您可以用途:

var temperature = zone.state.sensorDataPoints.insideTemperature.celsius;

var temperatureTextWrapper = document.createTextNode(Math.round(temperature) + "°");
vd2z7a6w

vd2z7a6w2#

如果你可以访问这段代码,你可以使用toFixed对数据本身进行操作:

// If the value is a float
const to1Decimal = zone.state.sensorDataPoints.insideTemperature.celsius.toFixed(1)

// If the value is a string
const floatValue = Number.parseFloat(zone.state.sensorDataPoints.insideTemperature.celsius)
const to1Decimal = floatValue.toFixed(1)

如果你没有,你可以在DOM中找到这个元素(这需要更多关于HTML的信息来帮助你),然后操作它:

// Assuming we found the node
const text = elementNode.innerText
const toFixed1Place = Number.parseFloat(text.split("°")[0]).toFixed(1)

参见MDN页面:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

相关问题