如何消除价格零点? [关闭]
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")); // ""
【讨论】:
以上是关于如何消除价格零点? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用正则表达式在产品页面上找到最便宜的价格吗? [关闭]
谁能建议如何在android Recycler View中按产品价格实现排序[关闭]