问题描述
假设我想删除数字 <canvas id="myCanvas" width="400" height="400"
style="border:1px solid #ff0000;">
</canvas>
<br>
<p>Choose a Shape</p>
<select id="shapesId">
<option value="">Please select</option>
<option value="rectangle">rectangle</option>
<option value="circle">circle</option>
</select>
<input type=button value="DRAW" onclick="javascript:draw();">
<script>
function draw() {
var xvalue = document.getElementById("shapesId").options[document.getElementById("shapesId").selectedindex].value;
if (xvalue=="rectangle") {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.clearRect(0,400,400);
var ctx = c.getContext("2d");
//ctx.clearRect(0,canvas.width,canvas.height);
ctx.beginPath();
ctx.rect(20,20,150,100);
ctx.stroke();
}
if (xvalue=="circle") {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.clearRect(0,400);
var ctx = c.getContext("2d");
//ctx.clearRect(0,canvas.height);
ctx.beginPath();
ctx.arc(95,50,40,2 * Math.PI);
ctx.stroke();
}
}
</script>
的最后一位。
为此,我使用代码 n
。
遗憾的是,这对大数字给出了错误的结果。
例如,int(n/10)
除以 n = 4474630975855204960
得到 10
。
这种行为的原因是什么?我该如何解决?
解决方法
对于某些数学运算,Python 解释器会为您处理长整数,您无需考虑。
Division 是不同的,它将整数转换为浮点数,这在 Python 中处理得不好。
您可以通过直接使用整数除法来解决这个问题 - 两个 // 而不仅仅是一个 /。
输入
4474630975855204960//10
输出
447463097585520496
,
此语法因 Python 版本而异,使用 //
进行整数除法
$ python2 -c 'print("%d" % (4474630975855204960/10))' # Integer division
447463097585520496
$ python3 -c 'print("%d" % (4474630975855204960/10))' # Float division
447463097585520512
$ python3 -c 'print("%d" % (4474630975855204960//10))' # True division
447463097585520496
,
您可以将 int
转换为 str
,删除最后一个字符,然后将其转换回 int
:
n = 4474630975855204960
print(int(str(n)[:-1]))
输出:
447463097585520496