javascript - 自定义十进制函数
问题描述
我想做一个功能,这就是我需要的。
如果一个数字以 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>
解决方案
正如@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 );
}
推荐阅读
- c++ - C ++ 17使用reduce与乘法相乘的列表不起作用
- html - Mac 上的填充看起来与 Windows 上的不同
- python - 如何让我的 Python 脚本无限运行(循环)?
- android - How do I parse this Dynamic JSON value with Retrofit 2 and GSON?
- r - 计算利用率分布的交集量
- lazy-loading - 延迟加载比急切加载更好吗?
- visual-studio - 每次我构建一个虚幻引擎项目时,vs都会发出这样的警告:无法获取MBCS字符串
- performance - movzbl 后跟 testl 比 testb 快吗?
- matlab - Matlab 的 arrayfun 操作是否比预先分配的 for 循环更节省内存?
- python - 从 Python 中的后续意图获取 Dialogflow 上下文参数