0
temperatureReading = Math.round(temperatureReading * 10) / 10

给我 26.29999999999999999999 而不是 26.3

和 26.00000000001 而不是 26.0

我从温度传感器交替得到 2 个值:26.33 和 26.3200000

转换后我有:26.2999999999999

上面的重复数字只是一个例子。我在 micro bit 上的显示不够宽,无法全部看到。

我使用 toString() 来显示值。

不幸的是,toFixed() 和 toPrecision() 在 micro:bit 上不可用

可以通过其他一些操作来实现舍入吗?

4

1 回答 1

1

使用以下代码,我现在可以获取带 1 个小数的数字作为字符串:

let temperatureStr = Math.round(temperatureReading * 10).toString()
let temperature = temperatureStr.slice(0, temperatureStr.length - 1) + "." + temperatureStr.slice(temperatureStr.length - 1);

我首先将数字乘以 10 并将结果转换为字符串。然后,我在最后一位之前插入小数点。这给了我想要打印的字符串。

于 2019-07-27T12:33:43.593 回答