Python 获取十进制值
如果给我一个十进制字符串,例如12.34,我如何获得小数点前后的值Python 获取十进制值,python,string,Python,String,如果给我一个十进制字符串,例如12.34,我如何获得小数点前后的值 a = 12 b = 34 如何获取a和b的值?编辑:在阅读注释“这似乎可行,但如果十进制字符串为0或1234,则不会给出任何值,我需要它为0。我将如何执行此操作?”,我提交以下内容: 在以下代码中,我们将字符串转换为十进制,然后: 它的整数部分是a 整数分量后面的数字是b。我们使用模%运算符得到除以1的余数,然后简单地去除 从开始的0.将其转换回末尾的int 代码如下: import decimal try: num
a = 12
b = 34
如何获取
a
和b
的值?编辑:在阅读注释“这似乎可行,但如果十进制字符串为0或1234,则不会给出任何值,我需要它为0。我将如何执行此操作?”,我提交以下内容:
在以下代码中,我们将字符串转换为十进制,然后:
a
b
。我们使用模%
运算符得到除以1
的余数,然后简单地去除
从开始的0.
将其转换回末尾的int
import decimal
try:
num = decimal.Decimal("12.34")
a = int(num)
b = int(str(num % 1)[2:])
except decimal.InvalidOperation:
a = None
b = None
Original:Python字符串对象有一个分区方法:
a,_,b = "12.34".partition('.')
请注意,\uu
只是一个保存分区的变量,但实际上并不用于任何用途。它可以是任何东西,比如z
这里要注意的另一件事是元组解包。。。partition方法返回len()为3的元组。Python将这三个值分别分配给左边的3个变量
或者,您可以这样做:
val = "12.34".partition('.')
val[0] # is the left side - 12
val[2] # is the right side - 34
编辑:阅读评论“这似乎可行,但如果十进制字符串为0或1234,则不提供任何内容,我需要它为0。我将如何执行?”后,我提交以下内容: 在以下代码中,我们将字符串转换为十进制,然后:
a
b
。我们使用模%
运算符得到除以1
的余数,然后简单地去除
从开始的0.
将其转换回末尾的int
import decimal
try:
num = decimal.Decimal("12.34")
a = int(num)
b = int(str(num % 1)[2:])
except decimal.InvalidOperation:
a = None
b = None
Original:Python字符串对象有一个分区方法:
a,_,b = "12.34".partition('.')
请注意,\uu
只是一个保存分区的变量,但实际上并不用于任何用途。它可以是任何东西,比如z
这里要注意的另一件事是元组解包。。。partition方法返回len()为3的元组。Python将这三个值分别分配给左边的3个变量
或者,您可以这样做:
val = "12.34".partition('.')
val[0] # is the left side - 12
val[2] # is the right side - 34
使用
split
和join
,然后键入cast toint
:
s = '12.34'
a = int(''.join(s.split('.')[0])) # 12
b = int(''.join(s.split('.')[1])) # 34
处理特殊情况(非十进制字符串):
使用
split
和join
,然后键入cast toint
:
s = '12.34'
a = int(''.join(s.split('.')[0])) # 12
b = int(''.join(s.split('.')[1])) # 34
处理特殊情况(非十进制字符串):
快速而肮脏的解决方案,无需进入模
a = int(12.34)
b = int(str(12.34)[3:])
int()将在不进行四舍五入的情况下截断小数点。
至于小数点,请将数字转换为字符串,这样可以像处理数组一样对其进行操作。抓取尾随数字并将其转换回整数
也就是说,其他答案更酷、更好,因此您应该使用快速、肮脏的解决方案,而不必使用模
a = int(12.34)
b = int(str(12.34)[3:])
int()将在不进行四舍五入的情况下截断小数点。
至于小数点,请将数字转换为字符串,这样可以像处理数组一样对其进行操作。抓取尾随数字并将其转换回整数
也就是说,其他答案更酷、更好,所以你应该选择它们可能重复的可能重复的可能重复的我非常喜欢这个!非常干净:)这给了我一个错误:列表索引超出范围出于某种原因我非常喜欢这个!非常干净:)这给了我一个错误:列表索引超出范围出于某种原因这似乎可行,但如果十进制字符串为0或1234,则不会给出任何结果,我需要它为0。我该怎么做?这似乎是可行的,但如果十进制字符串是0或1234,它什么也不给,我需要它是0。我该怎么做?没关系。但是,切片不能概括这里的情况,也许您可以使用
string.index
获得
的位置,并相应地使用切片:不要介意。但是,切片不能概括这里的情况,也许您可以使用string.index
获得
的位置,并相应地使用切片: