javascript - 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字
问题描述
我下面有一个字符串,它是以英镑为单位的价格,我想删除货币符号,然后将其转换为我可以用来与另一个值进行比较的数字/价格(例如 X >= Y ...)
£14.50
我之前已将字符串转换为用于货币的数字
var priceNum = parseFloat(price);
理想结果
14.50
作为数值。这可以在一行中完成吗?
解决方案
如果货币符号始终存在,只需使用substring
:
var priceNum = parseFloat(price.substring(1));
如果它可能存在或不存在,您可以使用replace
将其删除:
var priceNum = parseFloat(price.replace(/£/g, ""));
当心那parseFloat("")
是0
。如果您不想要0
空输入字符串,则需要处理它。这个答案简要介绍了在 JavaScript 中将字符串转换为数字的各种方法以及它们在各种情况下的作用。
旁注:使用 JavaScript 的标准数字作为货币信息通常不是最佳实践,因为如果事情像经典0.1 + 0.2
问题(结果是0.30000000000000004
, not 0.3
)。有各种库可以提供帮助,并且BigInt
也将用于 JavaScript(目前这是第 3 阶段的提案,目前在 Chrome 中提供)。BigInt
很有用,因为您可以使用基本货币的倍数(例如,* 100
英镑和便士)。
推荐阅读
- node.js - 如何通过查询与猫鼬分页
- python - Raspberry Pi 上的多线程 Python 程序中非常慢的二进制文件下载
- sql - 我如何 SUM() SQL roq\w
- c - 为什么 Code Blocks 20.03 停止编译和运行?如何让它再次返工?
- php - PHP邮件未发送
- ios - MTKTextureLoader 冻结线程
- c# - GetRolesAsync 无痕迹地退出
- azure - 在模板中使用 powershell 脚本
- python - 如何存储递归函数的结果而不是打印
- azure - 带有 pfx 证书的 Azure Function IBM MQ 设置