javascript - JavaScript / reactJS - 将最后一个小数四舍五入(没有硬编码的小数来计算)
问题描述
通过使用 JavaScript 计算,例如(在 live 中可以是任何值)
1000/0.997 = 1003.0090270812437
使用PC计算器计算
1000/0.997 = 1003.009027081244 // auto round up last decimal
但是如果!!! 这是正确的,与窗口相同,在这种情况下不需要四舍五入
500/0.997 = 501.5045135406219 // this is correct and same as window calculator
我更喜欢的输出是自动向上取整值1003.009027081244
问题:在 JavaScript 中,如何将小数的最后一位四舍五入?
我试过的:
Math.round(1003.0090270812437) // 1003
解决方案
也许你可以使用基于字符串的解决方案
将十进制数转换为字符串,然后split
由.
. 然后取一个小数部分长度减去 1,并将其用于toFixed
原始数字。
您可能需要一些额外的检查,以查看数字是否有小数部分
const decimal = 1003.0090270812437;
const text = decimal.toString().split('.')[1];
console.log(decimal.toFixed(text.length - 1)); // 1003.009027081244
推荐阅读
- c# - 将 [CallerMemberName] 属性与 Func 委托一起使用
- html - 如何为以下场景添加断点?
- django - 通过 git 同步 postgres 数据库
- xml - 无法在 Shell 中解析 XML
- javascript - 即使正文包含不在模式中的参数,findByIdAndUpdate 也不会失败
- node.js - 在nestJs中注入mongodb连接不起作用
- arm - 代码大小比较 Cortex M3:IAR ARM 与 Keil µVision
- cloud-foundry - Cloud Foundry 本地 - 未找到液滴
- c# - 如何使用 LINQ 找到 ±1 ± 2 ± 3 ± ... ± n = k 形式的所有可能组合?
- php - SyntaxError: JSON.parse: JSON 数据的第 1 行第 44498 列的 JSON 数据后出现意外的非空白字符