当.toFixed(2)在小数点后给出零时,如何将浮点数格式化为整数?

亚历克斯

我想知道实现以下目标的最短,最安全的方法是什么:

假设我有一个带值的float var 1.200123在我们的可视化中,我想用两个小数位显示该值,因此我现在使用myFloat.toFixed(2);,这给了我1.20

没关系。但是,如果结果输出的小数位只有零,该怎么办?例如1.000043,变为的值1.00

对于上述情况:如何省略小数点和零点而仅1作为输出获取,最好不解析和处理从其中出来的字符串.toFixed(2)

TJ人群

...最好不解析和处理.toFixed(2)产生的字符串?

好吧,尽管我担心要在数字逻辑和逻辑之间实现完美匹配,但考虑到包括以下短语的定义,您可以通过数字方式实现toFixedtoFixed

n为整数,其精确数学值n ÷10 f - x尽可能接近零。如果有两个这样的n,则选择较大的n

所以我可能只更新字符串,这不是很多工作:

function formatNumber(num) {
    return num.toFixed(2).replace(/\.00$/, "");
}

function test(num) {
    console.log(num, "=>", formatNumber(num));
}
test(1.01);
test(1.43);
test(23.7);
test(1.200123);
test(1.000043);
test(1.007);
test(1.0007);

但这是一种近似的数值方法,至少与上述测试用例的结果匹配:

function formatNumber(num) {
    var check = Math.round(num * 100) / 100;
    var rounded = Math.round(check);
    if (rounded == check) {
        return String(rounded);
    }
    return num.toFixed(2);
}

function formatNumberViaToFixed(num) {
    return num.toFixed(2).replace(/\.00$/, "");
}

function test(num) {
    var formatted = formatNumber(num);
    var viaToFixed = formatNumberViaToFixed(num);
    if (formatted == viaToFixed) {
        console.log(num, "=>", formatted);
    } else {
        console.log(num, "=>", formatted, "ERROR: Should be", viaToFixed);
    }
}
test(1.01);
test(1.43);
test(23.7);
test(1.200123);
test(1.000043);
test(1.007);
test(1.0007);
.as-console-wrapper {
  max-height: 100% !important;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中用小数点后的给定位数格式化浮点数?

将浮点数格式化为n个小数位,且不包含尾随零

如何将浮点数四舍五入到小数点后一位?

如何将浮点数舍入到小数点后第一位?

将浮点数格式化为2个小数位

将指数浮点数舍入到小数点后2位

Groovy:如何定义浮点数,该浮点数将生成输出为2位小数点

如何将浮点数格式化为可变精度?

Ruby浮点数在小数点后无任何零

在Python中将小数点后的浮点数加零

如何将字符串格式化为两个小数点?

如何将浮点数格式化为指定有效的第一个有效小数

将特定键的值格式化为数字/整数/浮点数时,将CSV转换为嵌套JSON

如何将浮点数列表中的每个项目四舍五入到小数点后两位?

如何将浮点数显示到小数点后 4 位,而不进行四舍五入?

打印小数点后最少位数的浮点数

如何可靠地将浮点数格式化为Haxe中指定的小数位数

JQuery - 将整数更改为带一位小数点的浮点数

将浮点数转换为整数而不舍入小数点

如何将字符串解析为以逗号作为小数点分隔符的浮点数

将浮点数格式化为小数(个、十、百...)

将字符串格式化为带有两位小数的浮点数

在Django模板中使用小数点和有限的小数部分格式化浮点数

将数字设置为小数点后的浮点数

将浮点数舍入到小数点后(特定问题)

如何将浮点数转换为带有千位分隔符和2个小数点的NSString?

自动将小数点后的零位数可变的浮点数舍入到第一个非零数字

是否可以返回浮点数,小数点后第2位为0?

如何打印浮点数小数点后的前三位数?