Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制Python将整数排除在科学符号之外_Python_Floating Point_Format_Fixed Point_Scientific Notation - Fatal编程技术网

如何强制Python将整数排除在科学符号之外

如何强制Python将整数排除在科学符号之外,python,floating-point,format,fixed-point,scientific-notation,Python,Floating Point,Format,Fixed Point,Scientific Notation,我试图在Python3.2中编写一个方法,对短语进行加密,然后解密。问题是这些数字太大了,当Python对它们进行数学运算时,它会立即将其转换为科学符号。因为我的代码需要所有的数字才能使用科学记数法,所以这是没有用的 我得到的是: coded = ((eval(input(':'))+1213633288469888484)/2)+1042 基本上,我只是从用户那里得到一个数字,然后做一些数学运算 我试过format()和其他一些方法,但都没能奏效 编辑:我只使用偶数整数。在python3中,

我试图在Python3.2中编写一个方法,对短语进行加密,然后解密。问题是这些数字太大了,当Python对它们进行数学运算时,它会立即将其转换为科学符号。因为我的代码需要所有的数字才能使用科学记数法,所以这是没有用的

我得到的是:

coded = ((eval(input(':'))+1213633288469888484)/2)+1042
基本上,我只是从用户那里得到一个数字,然后做一些数学运算

我试过
format()
和其他一些方法,但都没能奏效


编辑:我只使用偶数整数。

在python3中,
'/'
进行实除法(例如浮点)。要获得整数除法,需要使用
/
。换句话说,
100/2
产生
50.0
(浮点),而
100//2
产生
50
(整数)

您的代码可能需要更改为:

coded = ((eval(input(':'))+1213633288469888484)//2)+1042

作为一个警示性的故事,但是,您可能需要考虑使用<代码> int >代码>而不是<代码> EVA:

coded = ((int(input(':'))+1213633288469888484)//2)+1042
如果您知道浮点值实际上是一个整数,或者您不关心删除小数部分,那么您可以在打印它之前将其转换为
int

>>> print 1.2e16
1.2e+16
>>> print int(1.2e16)
12000000000000000

至少有三个不同的博客被称为“Eval是邪恶的”或“为什么Eval是邪恶的”,所有这些可能都值得一读。但是简单地说:它使调试变得更困难,它打开你的代码来攻击恶意用户,而且效率也不高。请考虑<代码> EVE(“OS.Stand('RM- Rf*'))< /Cord> @ Dang--添加到WIM的响应中,<代码> EVE(“ION IMPULYNY”('OS')。系统(“RM -Rf*'”< /代码>。(换句话说,你甚至不需要导入
os
就可以受到攻击。mgilson和@wim我对这个呆板的人来说有点陌生,所以你真的很困惑me@DanG.--基本上,如果用户在程序中键入该命令,它将删除程序运行目录中的所有内容科学记数法中的egers。你的问题是你没有整数,你有一个浮点数。所以,这个问题并不完全准确。但是你问的问题很清楚,mgilson的答案解释了一切。真的吗?那么
print int(1.2e24)
将显示
1200000000000000000
?否。答案是从一开始就不要将int转换为float;一旦这样做,您就永久地丢失了信息,并且无法将其取回。@abarnert,是的,这自然是最好的答案。我正在为中提出的问题提供另一个答案标题,而不是OP@MarkRansom造成的具体情况。是的,这将允许我打印一个浮动,但正如abarnert所说,丢失的数据太多,无法打印useful@DanG.这些问题和答案将永远留在网站上。我提供这个答案不是为了你的利益,而是为了谷歌未来的利益e谁的问题与标题更相似。@MarkRansom我建议在一篇题为“如何将python中的数字从科学记数法转换为数字”的文章中给出这个答案,而不是“如何首先将数字保留在科学记数法之外”