python-3.x - 将字符串转换为数字(浮点或整数,取决于输入的变量)
问题描述
在 JavaScript 中,我们有 +number ,它根据字符串的值将字符串转换为数字,如下所示:
x = '123' => +x returns 123
y = '12.3' => +y returns 12.3
现在,如果我在 python 中使用 int 它会返回:
x = '123' => int(x) returns 123
y = '12.3' => int(y) returns 12 which is wrong as it should return 12.3
而如果我使用浮点数:
x = '123' => float(x) returns 123.0 which is wrong as it should return 123 only though I know 123.0 is same as 123 but I want to parse it to some other query language which identifies the numbers as mentioned above.
y = '12.3' => float(y) returns 12.3
解决方案
JavaScript 不像其他语言(如 C)那样具有整数类型,因此123
在 JS 中实际上123.0
存储为双精度,但显示时没有小数。(BigInt
如果你想进一步学习,但它本来是123n
)。
在 Python 中,您可以使用literal_eval
从字符串表示中获取数字(文字)值:
import ast
ast.literal_eval("123") # -> 123 (int)
ast.literal_eval("123.") # -> 123.0 (float)
ast.literal_eval("123.0") # -> 123.0 (float)
推荐阅读
- c# - 如何在 OnModelCreating 中调用非静态类来播种用户身份?
- java - 当涉及的线程之一是 main() 线程时,为什么线程间可见性不需要 volatile 关键字?
- xml - 无效的 XML 字符错误 - 如何从 VARCHAR2 数据库列中查找无效字符?
- r - 使用 igraph 将节点属性分配给边权重
- vhdl - SDRAM 上的帧缓冲区
- ios - 如何将响应从 swift 传递给 Flutter?
- javascript - 尝试将更新推送到 vue 数据变量时,“blogItems”未定义
- xaml - Xamarin 数据绑定 - 通过 ItemList 显示来自自定义类的数据的问题
- python - ATM卡密码验证-Python
- if-statement - 当字符串的 Arraylist 为空时崩溃