首页 > 解决方案 > 自定义十进制函数

问题描述

我想做一个功能,这就是我需要的。

如果一个数字以 0 开头,则该数字最多为 6 位小数。如果不是(数字以 1,2,3... 开头),请给该数字最多 2 位小数。

$567.45321432 > $567.45
$65.3 > 65.30
$0.1 > 0.100000
$0.00003 > 0.000030

这就是我到目前为止所得到的。当firstnumb = 0它必须是5。知道是什么原因造成的吗?

<!DOCTYPE html>
<html lang="">
<head>
</head>

<body>
    <script>
var num = 544.3;
var str = num.toString();
var firstnumb = str.charAt(0);
    if (firstnumb = "0") {
        alert("2 Decimals");
        var numdecimal = parseInt(str, 10).toFixed(2);
    } else {
        alert("6 Decimals");
        var numdecimal = parseInt(str, 10).toFixed(6);
    } 
    </script>
</body>
</html>

标签: javascript

解决方案


正如@Tyler Roper 在评论中解释的那样,您应该使用===而不是=因为后者用于分配。此外,而不是parseInt你应该使用parseFloat,因为你使用的是浮点数而不是整数。

var num = 544.3;
var str = num.toString();
var firstnumb = str.charAt(0);
    if (firstnumb === "0") {
        console.log("6 Decimals");
        var numdecimal = parseFloat(str, 10).toFixed(6);
        alert( numdecimal );
    } else {
        console.log("2 Decimals");
        var numdecimal = parseFloat(str, 10).toFixed(2);
        alert( numdecimal );
    } 


推荐阅读