在 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"
注意事项
-
无效值处理 :如果字符串不能转换为有效数字,会返回
NaNjavascriptlet invalid = parseFloat("abc"); // NaN -
空字符串处理:空字符串会转换为 0
javascriptlet empty = parseFloat(""); // 0 -
部分数字字符串:parseFloat 会解析直到遇到非数字字符
javascriptlet partial = parseFloat("123.45abc"); // 123.45 -
toFixed() 返回字符串:注意 toFixed() 返回的是字符串,不是数值
javascriptlet 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 进行搜索
// ...
}
希望这些信息对您有帮助!