【问题标题】:Parsefloat and currency issuesParsfloat 和货币问题
【发布时间】:2021-05-28 22:45:17
【问题描述】:

我在 autoFill 扩展上使用此变量来获取页面上的字符串并将其放在同一页面上的字段中。

minPrice = javascript:(document.getElementsByClassName('market_commodity_orders_header_promote')[1].innerHTML.replace("R$ ",""))

我的目标是在其最终值中添加一个随机数的美分,但由于即使在我删除 que "R$" 之后它也是一个字符串,所以我不能只使用 math.random。而当我使用 parseFloat 时,它更让我烦恼。

我尝试了很多不同的方法,但都没有成功,要么我得到了很多零和错误的小数点。

我的其他尝试

minPrice  = javascript:((parseFloat(document.getElementsByClassName('market_commodity_orders_header_promote')[1].innerHTML.replace("R$ ","").replace(",","."))+(Math.random() * (0.120 - 0.0200) + 0.0200)).toFixed(2))

minPrice  = javascript:(parseFloat(document.getElementsByClassName('market_commodity_orders_header_promote')[1].innerHTML.replace("R$ ","").replace(",",".")).toFixed(2))

尝试将其设为 parseInt 并除以 100 以获得正确的小数大小写,但我一直在丢失美分值 - 每次尝试时,代码都会变得越来越错误。

【问题讨论】:

    标签: javascript autofill steam parsefloat


    【解决方案1】:

    您要完成的工作并不完全清楚,但听起来您有一个字符串,例如:

    R$12.812,12
    

    你想添加一个随机数的美分吗?然后再转换回来?

    如果是这样:

    const input = 'R$12.812,12';
    const numberOfCents = parseInt(input.replace(/\D/g,''));
    const randomNumberOfCents = parseInt(Math.random() * 100);
    const moneyStr = new Intl.NumberFormat('pt-BR',  {
        style: 'currency',
        currency: 'BRL',
        minimumFractionDigits: 2
    }).format((numberOfCents + randomNumberOfCents)/100)
    console.log(moneyStr);

    【讨论】:

    • 如果不是很清楚,我很抱歉。这一行给了我值并删除了 R$,但它仍然是一个字符串。我得到了这个价值蛋: R$ 564,91 删除 R$ 后,变成了 564,91 我的目标是添加 1 到 10 个随机美分到这个值,并且由于某种原因,我不断收到太多小数点或多个点或逗号。 code minPrice = javascript:(document.getElementsByClassName('market_commodity_orders_header_promote')[1].innerHTML.replace("R$ ",""))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    相关资源
    最近更新 更多