如何消除价格零点? [关闭]

Posted

技术标签:

【中文标题】如何消除价格零点? [关闭]【英文标题】:How to remove price zeros? [closed] 【发布时间】:2021-12-06 02:56:55 【问题描述】:

如何在 react native 中删除价格最后六个零

原价 - ₹699 原价 - ₹800

API 响应 - ₹699000000 API 响应 - ₹800000000

我试试这个。它会删除所有零。

var numstr = 800000000

  while (numstr[numstr.length-1] === "0")            
      numstr = numstr.slice(0, -1)
      if (numstr[numstr.length-1] !== "0") break;
      if (numstr[numstr.length-3] === ".") break;
  

【问题讨论】:

显示您的代码。无论您尝试过什么。 你试过什么? ***.com/help/minimal-reproducible-example您是否只想删除字符串的最后 6 个字符? 我想删除最后 6 个零 【参考方案1】:

您的代码的问题是条件,它会反向处理所有数字,直到第一个非零字符,没有限制。您可以保留一个循环计数器并且迭代次数不超过 6 次;具有适当退出条件的 for-loop 将在这里工作。虽然你不需要把它弄得这么复杂。

两个简单的方法:

    整数除法:除以 1000000 以删除最后 6 位。

console.log(Math.floor(800000000 / 1000000)) // 800
console.log(Math.floor(699000000 / 1000000)) // 699
    字符串切片:复制除最后 6 个字符之外的所有字符。

console.log("800000000".slice(0, -6)) // 800
console.log("699000000".slice(0, -6)) // 699

如果您需要更通用/无主见的解决方案,请使用 for 循环从末尾检查每个字符的非零性,并将该数量切片,最多为字符串的 6|max 并返回。

const removeUpTo6Zeros = val => 
  let i;
  for (i = 0; i < 6; i++) 
    if (val[val.length - 1 - i] !== '0') break;
  
  return i ? val.slice(0, -i) : val;
;

console.log(removeUpTo6Zeros("800000000")); // 800
console.log(removeUpTo6Zeros("699000000")); // 699
console.log(removeUpTo6Zeros("699000030")); // 69900003
console.log(removeUpTo6Zeros("699001003")); // 699001003
console.log(removeUpTo6Zeros("69900"));     // 699
console.log(removeUpTo6Zeros("69"));        // 69
console.log(removeUpTo6Zeros("6"));         // 6
console.log(removeUpTo6Zeros("0"));         // ""
console.log(removeUpTo6Zeros("00"));        // ""
console.log(removeUpTo6Zeros("000"));       // ""

【讨论】:

以上是关于如何消除价格零点? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

比特币价格凌晨突发大跳水 4小时下跌近3300美元

我可以使用正则表达式在产品页面上找到最便宜的价格吗? [关闭]

谁能建议如何在android Recycler View中按产品价格实现排序[关闭]

mysql选择价格不同的那些项目[关闭]

如果你提高你的 iPhone 应用程序的价格,老用户是不是需要付费升级? [关闭]

Python:如何在 Y 轴上绘制数字 [关闭]