簡體   English   中英

在 html/javascript 中將百分比轉換為小數

[英]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 === NaNfalse (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/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM