如何检查数字是否有两个小数位,并在必要时保留尾随零
How to check if a number has two decimal places and keep the trailing zero if necessary?
如果您有这些数字:
-
阿拉伯数字
-
2,05
-
2.547
-
2.5
如何检查数字是否有两个小数位?
如果它有 2 位小数,如何删除第二个十进制数(四舍五入)但在需要时保留尾随 0?
结果示例:
2.05 would end in 2.1
2.04 would end in 2.0
2.54 would end in 2.5
我意识到您可以使用 toFixed(1),但这会将其转换为字符串。如果你用parseInt()将其转换为int,它会丢失尾随的零
谢谢大家
你可以有一个数字,也可以但是toFixed将其转换为字符串,如果您使用parseInt,它将删除尾随零
有一个数字的表示形式,但没有第三种选择。
如果你想要一个数字的表示形式,字符串有什么问题?如果你想要一个数字,那么就没有"尾随零"。
"2.0"表示的数字没有尾随零,因为只有表示才能有尾随零。数字 2 可以用或不带尾随零表示,并且它是相同的数字。
所以:你想要一个数字还是一个表示?
我认为你一定想要一个表示,因为实际上只有表示才能有特定的小数位数。在这种情况下,为什么toString
不是正确的解决方案?
假设x
是你正在处理的值
var temp = Math.round(x * 10) / 10; // This is the value as a number
document.write(temp.toFixed(1)); // writes the number in the desired format
在 JavaScript 中,值 1.5
和值1.50
之间没有区别 - 作为数字,它们是完全相同的。只有当您使用类似 toFixed()
的东西将它们转换为字符串时,它们才会变得不同。
我建议(它所基于的HTML如下):
$('li').text(function(i,t){
var rounded = t.split('.')[1] ? (Math.round(parseFloat(t) * 10)/10).toFixed(1) : t;
return t + ' (' + rounded + ')';
});
JS小提琴演示。
三元:
t.split('.')[1] ? (Math.round(parseFloat(t) * 10)/10).toFixed(1) : t;
评估是否有句点,如果有,那么我们将浮点数解析为一个数字,将其乘以 10(因为我们希望数字到小数点后一位),将该数字四舍五入,然后将其除以 10,然后,toFixed(1)
将数字截断为一位(正确舍入的)小数位。
如果数字没有小数部分(它是一个整数,而不是浮点数),我们什么都不做,只是使用找到的现有数字。
这基于以下 HTML:
<ul>
<li>2</li>
<li>2.05</li>
<li>2.547</li>
<li>2.5</li>
<li>2.04</li>
</ul>
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 在同一命名空间中保留两个独立的javascript文件/代码段
- 交换两个 html 元素并保留其上的事件侦听器
- 将两个或多个 JSON 对象数组合并为一个数组,保留唯一性
- 合并两个对象,但保留继承
- 如何检查数字是否有两个小数位,并在必要时保留尾随零
- Javascript在onclick上验证两个控件,但如果只有一个控件验证,则不保留值
- RegExp匹配除两个保留字符串外的任何字符串
- 如何组合具有相同键的两个对象并保留该键的两个值
- 如何得到只有两个字母作为字母,并保留为数字在文本区域字段
- 在两个项目之间共享组件,同时保留热加载
- 如何决定是将其拆分为两个类还是保留在同一个类中
- 保留两个<选择>s同步