【问题标题】:convert string (calculation )to number将字符串(计算)转换为数字
【发布时间】:2012-10-09 16:39:37
【问题描述】:

我需要将okString[1] 值转换为数字,前有计算。 6.2*2。 I triedJQUERY API 文档`

"或者你使用javascript提供的String类,它试图将一个值解析为字符串:

字符串(1)+字符串(2); // “12” 字符串(1 + 2); // "3" "

我的代码在这里:jsfiddle `

 <div id="userForm">

<input id="string_input" value="1=2,6;2=4,5;3=5;5=6.1;7=6,2*2">

<!-- end -->
</div>​


$('#string_input').click(function() {
    fnWorkMainString();


});


function fnWorkMainString() {
    fnWorkSubString();

}

function fnWorkSubString() {
    var getString = $('#string_input').val();



   var divString = getString.split(';');
    console.log('divString ' + divString.length);
    var stringAfterDiv = [];
    var okString = "";
    for (i = 0; i < divString.length; i++) {
        console.log(divString[i]);
        stringAfterDiv[i] = divString[i].split('=');
        console.log(stringAfterDiv[i]);

        okString= stringAfterDiv[i][1].replace(',','.');    
          console.log(String(okString));
    }
    console.log(String( 1 + 2 ));

    return stringAfterDiv;
}​

【问题讨论】:

  • 您要查找的输出到底是什么
  • 例如从 6,2*2 我需要 12.4,或 5.3+5 => 10.3 atc
  • 当我尝试 alert(String(6.2 * 2)) 时它工作得很好。尝试使用字符串替换将逗号更改为句点,这很好。
  • @Joost 但我不使用静态字符串。警报(字符串(okString));也不行

标签: jquery string parsefloat


【解决方案1】:

您可以尝试使用 eval 函数。结果证明这是有效的(返回 22.2)。我只是在计算字符串前面加上一个赋值(在用点替换逗号之后)

var str = "2*7.1 + 4/0,5";
str = str.replace(',','.');
eval("var answer = "+str);
alert(answer);

或者在一个漂亮的函数中,完全跳过分配

function computeString(str) {
   return eval(str.replace(',','.'));
}

【讨论】:

    【解决方案2】:

    试试

    parseFloat("3",10)
    
    OR
    
    parseInt("3",10)
    

    【讨论】:

    • 但是 6,2*2 => 6.2 而不是 12.4 与 parseInt(okString,10)
    • 或者你使用javascript提供的String类,它尝试将一个值解析为字符串:String(1)+String(2); // "12" 字符串(1 + 2); // "3" .. 我也试过 String() ..
    • 然后你需要再次根据运算符拆分字符串,然后才能进行数学运算
    • 那么 = 前面的数字是多少?? 7=6,2*2
    • / before = 数字将是 ID
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    相关资源
    最近更新 更多