我正在尝试在JES中做一个学生jython程序的作业。我需要转换我们的学生人数作为一个字符串输入变量通过我们的函数,即。defassignment (stringID)并将其转换为整数。具体说明如下:
步骤1定义一个名为id的数组,它将把你的7位数字存储为整数(你在数组中设置的数字无关紧要,它将在下一步中覆盖你的学生号)。你的学生号已经作为字符串传递到你的函数中。您必须将数字分开,并将它们分配给您的数组id。这可以手动逐行或使用循环来完成。您需要将stringID中的每个字符类型转换为整数,然后将其存储在id中。
我已经尝试了很多不同的方法使用int和float函数,但我真的卡住了。提前感谢!
>>> a = "545.2222"
>>> float(a)
545.22220000000004
>>> int(float(a))
545
我必须为websphere服务器编写一些jython脚本。这一定是一个非常旧的python版本,它没有**运算符或len()函数。我必须使用一个异常来查找字符串的结尾。
无论如何,我希望这能为别人节省一些时间
def pow(x, y):
total = 1;
if (y > 0):
rng = y
else:
rng = -1 * y
print ("range", rng)
for itt in range (rng):
total *= x
if (y < 0):
total = 1.0 / float(total)
return total
#This will return an int if the percision restricts it from parsing decimal places
def parseNum(string, percision):
decIndex = string.index(".")
total = 0
print("decIndex: ", decIndex)
index = 0
string = string[0:decIndex] + string[decIndex + 1:]
try:
while string[index]:
if (ord(string[index]) >= ord("0") and ord(string[index]) <= ord("9")):
times = pow(10, decIndex - index - 1)
val = ord(string[index]) - ord("0")
print(times, " X ", val)
if (times < percision):
break
total += times * val
index += 1
except:
print "broke out"
return total
警告! -确保字符串是一个数字。该函数不会失败,但您将得到奇怪的,几乎可以肯定的是,无用的输出。