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

webghufk  于 2023-01-19  发布在  Java
关注(0)|答案(5)|浏览(237)

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);
    } }
r6hnlfcb

r6hnlfcb1#

所以你有这样一个字符串:50%?不如这样:

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

r6vfmomb2#

如果使用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];
pkwftd7m

pkwftd7m3#

假设“%”在字符串的右边,只需使用parseFloat(s)/100
http://jsfiddle.net/TrCYX/1/

jtw3ybtb

jtw3ybtb4#

我迟到了很久,但是如果它是小数,保持它原样是这样的

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
hpxqektj

hpxqektj5#

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%"]))

相关问题