Math.floor 的 parseFloat
时间: 2024-01-11 12:05:04 浏览: 20
`Math.floor()` 和 `parseFloat()` 是 JavaScript 中两个不同的函数,它们的功能也不一样。
`Math.floor()` 用于向下取整,返回小于或等于指定数字的最大整数。例如,`Math.floor(3.14)` 将返回 3,`Math.floor(-3.14)` 将返回 -4。
`parseFloat()` 是用于将字符串解析为浮点数的函数。它会从字符串的开头开始解析,直到遇到非数字字符为止,返回解析后的浮点数。例如,`parseFloat("3.14")` 将返回 3.14,`parseFloat("abc")` 将返回 NaN。
因此,`Math.floor(parseFloat("3.14"))` 表示先将字符串 "3.14" 解析为浮点数 3.14,再向下取整,返回 3。
相关问题
function timeToDecimal(time) { var arr = time.split(':'); var hour = parseFloat(arr[0]); var minute = parseFloat(arr[1]); var second = parseFloat(arr[2]); return hour + minute / 60 + second / 3600; } // 将十进制转化成时分秒格式 function decimalToTime(decimal) { var hour = Math.floor(decimal); var minute = Math.floor((decimal - hour) * 60); var second = Math.floor(((decimal - hour) * 60 - minute) * 60); return hour + ':' + minute + ':' + second; }如果分有02,转换回来成立2
这是因为在使用parseFloat函数时,会自动忽略掉数值前导的0,所以02会被解析为2。可以使用parseInt函数来解决这个问题,例如:
```javascript
function timeToDecimal(time) {
var arr = time.split(':');
var hour = parseInt(arr[0]);
var minute = parseInt(arr[1]);
var second = parseInt(arr[2]);
return hour + minute / 60 + second / 3600;
}
function decimalToTime(decimal) {
var hour = Math.floor(decimal);
var minute = Math.floor((decimal - hour) * 60);
var second = Math.floor(((decimal - hour) * 60 - minute) * 60);
return hour + ':' + (minute < 10 ? '0' : '') + minute + ':' + (second < 10 ? '0' : '') + second;
}
var time = '12:02:45';
var decimal = timeToDecimal(time);
console.log(decimal); // 输出12.045833333333333
var time2 = decimalToTime(decimal);
console.log(time2); // 输出12:02:45
```
在转换成时分秒格式时,可以使用三目运算符来判断是否需要在分钟和秒前添加前导0。这样就可以得到正确的结果了。
parseFloat去除四舍五入
`parseFloat` 函数不是用来去除四舍五入的,它是用来解析字符串并返回浮点数的。如果你想要去除四舍五入,可以使用 `Math.floor` 或者 `Math.ceil` 函数,具体使用哪个取决于你想要向下取整或者向上取整。例如:
```javascript
var num = 3.14159;
var floorNum = Math.floor(num); // 向下取整,结果为 3
var ceilNum = Math.ceil(num); // 向上取整,结果为 4
```