JavaScript 字符串转数值(小数)

在 JavaScript 中,将字符串转换为数值(包括小数)有多种方法。以下是常用的几种方式:

1. parseFloat() - 最常用的方法

javascript 复制代码
let str = "123.45";
let num = parseFloat(str); // 123.45 (number类型)
console.log(typeof num); // "number"

2. Number() 构造函数

javascript 复制代码
let str = "123.45";
let num = Number(str); // 123.45 (number类型)
console.log(typeof num); // "number"

3. 一元加号运算符(+)

javascript 复制代码
let str = "123.45";
let num = +str; // 123.45 (number类型)
console.log(typeof num); // "number"

4. parseFloat() 与 toFixed() 结合使用

javascript 复制代码
let str = "123.45678";
let num = parseFloat(str).toFixed(2); // "123.46" (string类型)
let num2 = parseFloat(parseFloat(str).toFixed(2)); // 123.46 (number类型)

实际应用示例

javascript 复制代码
// 从输入框获取值并转换为数值
let inputValue = document.getElementById("priceInput").value; // 假设值为 "123.45"
let price = parseFloat(inputValue); // 转换为数值 123.45

// 计算时使用数值
let total = price * 1.05; // 正确的数值计算

// 显示时格式化
document.getElementById("display").textContent = total.toFixed(2); // "129.62"

注意事项

  1. 无效值处理 :如果字符串不能转换为有效数字,会返回 NaN

    javascript 复制代码
    let invalid = parseFloat("abc"); // NaN
  2. 空字符串处理:空字符串会转换为 0

    javascript 复制代码
    let empty = parseFloat(""); // 0
  3. 部分数字字符串:parseFloat 会解析直到遇到非数字字符

    javascript 复制代码
    let partial = parseFloat("123.45abc"); // 123.45
  4. toFixed() 返回字符串:注意 toFixed() 返回的是字符串,不是数值

    javascript 复制代码
    let num = 123.456;
    let str = num.toFixed(2); // "123.46" (字符串)
    let num2 = parseFloat(num.toFixed(2)); // 123.46 (数值)

在您的代码中的应用

根据您提供的代码,您已经在多处使用了 toFixed(2) 来格式化显示数值,这是正确的做法。如果您需要将用户输入的字符串转换为数值进行计算,可以使用上述方法。

例如,在您的搜索功能中:

javascript 复制代码
function stock_search(btn) {
    let inputValue = document.getElementById("stock_search_input").value;
    // 如果需要确保是数值,可以转换
    let stockCode = parseInt(inputValue); // 如果是整数股票代码
    // 或者保持为字符串,取决于您的后端API要求
    
    // 然后使用 stockCode 进行搜索
    // ...
}

希望这些信息对您有帮助!

相关推荐
const_qiu8 分钟前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog13 分钟前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
CoderYanger38 分钟前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
估值探索者1 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
szp20051 小时前
Cache API 会丢掉 URL 里的 #:我的 9 个模型分块一直写在同一条缓存上
javascript·浏览器
keyipatience2 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
爱喝热水的呀哈喽2 小时前
HEJIAN RESEARCH
开发语言·matlab
白露与泡影2 小时前
后端 Java 面试核心八股汇总|高频面试题 + 解析,覆盖基础到进阶
java·开发语言·面试
xifangge20252 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成「潮汕英歌舞冰淇淋蛋糕&红桃粿咖啡」IP,固定角色形象批量出甜品商业效果图
开发语言·人工智能·python·prompt·aigc