[英]Convert percent into a decimal in html/ javascript
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
function convertToDecimal(percent) {
let newarr =[]
for(i=0; i<percent.length; i++) {
const parsed = parseFloat(percent[i]);
if (!Number.isNaN(parsed[i])) {
let newval = parseFloat(percent[i]) / 100;
//return newval;
newarr.push(newval)
} else {
return 0;
}
} return newarr;
}
console.log(convertToDecimal(["33%", "98.1%", "56.44%", "100%"]))
我很晚了,但是如果它是小数,就保持它本身就像这样
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.