当前位置: 首页 > 面试题库 >

将数字截断到两位小数而不四舍五入

严知
2023-03-14
问题内容

假设我的值为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>

toFixed方法在某些情况下(与)不同而失败toString,因此请务必小心。



 类似资料:
  • 我如何四舍五入到两个小数位?

  • 我试图将大的十进制值四舍五入到小数点后两位。 我正在使用 但它并没有始终如一地满足我的要求: 我不在乎有效数字,我只想要小数点后两位。我如何使用BigDecimal做到这一点?或者还有其他类/库更适合这个?

  • 问题内容: 如果值为,则应将其格式化为。如果是,那么应该是。 问题答案: 这是一个实用程序,可以将双精度舍入(而不是截断)双精度至小数位数。 例如: 原始版本;提防这个 这在小数位数很高(例如)或整数部分很大(例如)的极端情况下会严重崩溃。感谢Sloin指出这一点。 多年来,我一直在使用上面的方法将“不太大”的双精度取整到2或3个小数位(例如,以秒为单位的清理时间用于记录目的:27.9876543

  • 我需要把分钟换算成小时,四舍五入到小数点后两位。我还需要在小数点后显示最多两个数字。所以如果我有650分钟,那么小时应该是10.83。 但在这种情况下,如果我的分钟数是630小时,那就是10.5000000。但我只想要10.50(四舍五入后)。我如何做到这一点?

  • 获取以下数字集--> 当相加时,这些给出一个整数。

  • 问题内容: 我有以下JavaScript语法: 这四舍五入为整数。如何返回两位小数的结果? 问题答案: 注-如果3位数精度很重要,请参阅编辑4 toFixed将根据超过2个小数的值为您舍入或舍入。 编辑 -正如其他人所提到的,它将结果转换为字符串。为了避免这种情况: 编辑2- 正如注释中所提到的,此函数在某种程度上会失败,例如在1.005的情况下,它将返回1.00而不是1.01。如果准确性在这个程