【问题标题】:How to multiply two decimals of type string javascript如何将字符串类型的两位小数相乘 javascript
【发布时间】:2023-03-10 22:45:01
【问题描述】:

我想把这两个字符串类型的值相乘

值 1 = "$10.99"

值 2 = "$20.8"

var x = document.getElementById("Text1");
var y = document.getElementById("Text2");
var tointx = x.Value
var tointy = y.Value
var z = tointx * tointy
var result = z.reduc((r, e) => r + +e.replace(',', '.'), 0)
alert(result);
<input id="Text1" value="$10.99" />

<input id="Text2" value="$20.8" />

【问题讨论】:

  • 可能有帮助和相关的Currency Math in JavaScript
  • 我看到一个 JavaScript 错误:“Uncaught TypeError: z.reduc is not a function”。

标签: javascript


【解决方案1】:

几件事

  1. .valueJS 区分大小写
  2. $ 符号需要去
  3. reduce 也拼错但不需要
  4. 确定要整数吗?

const x = document.getElementById("Text1").value;
const y = document.getElementById("Text2").value;
let tofloatx = +x.slice(1); // unary plus will convert to number but so will multiplication
let tofloaty = +y.slice(1)
let z = tofloatx * tofloaty
console.log("float",z,"int",Math.round(z))
<input id="Text1" value="$10.99" />

<input id="Text2" value="$20.8" />

【讨论】:

    【解决方案2】:

    multiplyFields();
    
    function multiplyFields( ) {
     var x = Text1.value,
         y = Text2.value,
         z = x.match( /[0-9.]+/ ) * y.match( /[0-9.]+/ );
    
        alert( z );
    }
    <input id=Text1 value=$10.99 >
    <input id=Text2 value=$20.80 >

    【讨论】:

      【解决方案3】:

      这是你需要的吗?

      let x = "$10.99"
      let y = "$20.8"
      let moneyToNb = function(money) {return Number(money.replace("$",""))}
      let intX = moneyToNb(x)
      let intY = moneyToNb(y)
      let z = Math.floor(intX*intY)
      console.log(z);

      【讨论】:

      • 解释会很有帮助。出了什么问题,您是如何解决的?
      猜你喜欢
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多