首页 > 解决方案 > 基于浮点数的条件语句

问题描述

我有一些我正在获得的浮点数。这个数字有两个小数位,永远不会超过这个数字。

我想测试我拥有的数字是否是浮点数,然后做出这两个决定。

  1. 如果数字等于 5 但从不大于 5

  2. 如果 number 等于 20 但从不大于 20 但从不小于 5

我有这个代码

var get_sum = 4.45;

var dist = parseFloat(get_sum);

if(typeof(dist) == 'number' && dist == 5 || dist < 5){
          }
if(typeof(dist) == 'number' && dist == 20 || dist < 20 && dist > 5){
          }

因为我正在处理花车,所以我认为这==是一个坏主意,我可能会得到错误的结果。

我的代码总是能保证我得到正确的结果吗?

标签: javascript

解决方案


来自W3C

JavaScript 数字始终是 64 位浮点数

所以你不能真正测试我拥有的数字是否是 float,因为 JavaScript 中数字的每个实例都是相同的类型(类型number,与 object 相关Number)。

注意: parseFloat 总是返回 a number,如果它不能解析浮点数,它会返回NaN(仍然是 a number),所以你typeof(dist) == 'number'没用;)


推荐阅读