在html/javascript中将百分比转换为小数

Convert percent into a decimal in html/ javascript

本文关键字:百分比 转换 小数 html javascript      更新时间:2023-09-26

Javascript:

   var validate(s) = s.match ^( 100(?:'.0{1,2})? | 0*?'.'d{1,2} | 'd{1,2}(?:'.'d     {1,2})? )% $ != null; 
   var str = value.match(/'/'/%//g);
    if(converted==NaN){
            alert('Input was not a number');
    }
    else if(converted != null) {
            var fracToDecimal = eval (value);
            alert(fracToDecimal);
    }
    else if(converted = str) {
            var percToDecimal = value/100;
            alert(percToDecimal);
    } }

所以你有一个字符串,比如:50%?怎么样:

var percent = "50%";
var result = parseFloat(percent) / 100.0;

如果你使用 parseFloat ,它将读取字符串直到第一个非数字字符(%

var x = '20.1%';
var y = parseFloat(x); // 20.1

然后你可以检查它是否NaN ,并转换它。

if(!isNaN(y)){
    y /= 100; // .201
}

注意:你需要使用isNaN NaN === NaN因为false(JavaScript很奇怪)。

<小时 />

更新:我看到你也有fracToDecimal 。 你不需要eval。 只需做一个简单的split.

var frac = '1/2';
var nums = frac.split('/');
var dec = nums[0]/nums[1];

假设"%"在字符串的右侧,只需使用parseFloat(s)/100

http://jsfiddle.net/TrCYX/1/

我很晚了,但如果它是小数,请将其保留为自身,

如下所示
let val = "100%"
String(val).includes("%") ? parseFloat(val)/100 : parseFloat(val) //1
val = 1 //or val = "1"
String(val).includes("%") ? parseFloat(val)/100 : parseFloat(val) //1