假设我有一个值15.7784514,我想显示它15.77,没有舍入.

var num = parseFloat(15.7784514);
document.write(num.toFixed(1)+"<br />");
document.write(num.toFixed(2)+"<br />");
document.write(num.toFixed(3)+"<br />");
document.write(num.toFixed(10));

结果-

15.8
15.78
15.778
15.7784514000 

如何显示15.77?

推荐答案

将数字转换为字符串,将数字匹配到小数点后第二位:

function calc(theform) {
    var num = theform.original.value, rounded = theform.rounded
    var with2Decimals = num.toString().match(/^-?\d+(?:\.\d{0,2})?/)[0]
    rounded.value = with2Decimals
}
<form onsubmit="return calc(this)">
Original number: <input name="original" type="text" onkeyup="calc(form)" onchange="calc(form)" />
<br />"Rounded" number: <input name="rounded" type="text" placeholder="readonly" readonly>
</form>

toString不同,toFixed方法在某些情况下会失败,所以要非常小心.

Javascript相关问答推荐

除了在Angular 16中使用快照之外,什么是可行且更灵活的替代方案?

我的YouTube视频没有以html形式显示,以获取免费加密信号

如何在JavaScript中通过一次单击即可举办多个活动

主要内部的ExtJS多个子应用程序

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

字节数组通过echo框架传输到JS blob

Cookie中未保存会话数据

为什么我的列表直到下一次提交才更新值/onChange

Rehype将hashtag呈现为URL

手机上的渲染错误文本必须在文本组件中渲染,但在浏览器上没有问题<><>

如何添加绘图条形图图例单击角形事件

XSLT处理器未运行

单个HTML中的多个HTML文件

使用auth.js保护API路由的Next.JS,FETCH()不起作用

当从其他文件创建类实例时,为什么工作线程不工作?

重新呈现-react -筛选数据过多

无法使用npm install安装react-dom、react和next

我在哪里添加过滤器值到这个函数?

如何调整下拉内容,使其不与其他元素重叠?

在HTML中使用meta标记来指定定制元数据以用于使用JavaScript进行检索是不是一个坏主意?