在Python中,我有:
for (x in colnames(A)) { A[,x] <- eval( call( paste0("as.", class(B[,x])), A[,x]) )}
在Lua,我有:
>>> mac_string = "68:a8:6d:0b:90:46"
>>> mac_int = int((mac_string).replace(":", ""), 16)
>>> print(mac_int)
115072593268806
为什么4有差异?
答案 0 :(得分:2)
默认情况下,Lua 5.1始终将数字存储为64位浮点值。 ICollection<T>
使用科学记数法打印非常大或小的值。
如果您使用tostring
格式化数字,则可以获取所有数字:
string.format
答案 1 :(得分:1)
直到Lua版本5.2,Lua 数字类型使用浮点表示,而Python使用仅由内存绑定的实际整数。来自Lua 5.2 documentation:
Number表示实数(双精度浮点)数。
请注意,该数字仍然足够精确,但舍入为显示。如果在Python中将结果整数转换为float(也使用双精度浮点数),您可以看到相同的数字:
>>> float(115072593268806)
115072593268806.0
>>> '{:.13e}'.format(float(115072593268806))
'1.1507259326881e+14'
第二行格式与Lua相同;小数点后13位数,使用科学记数法。
您可以告诉Lua使用其他格式使用string.format
打印号码:
print(string.format("%d", mac_int))
我看到Lua 5.3 expanded the number type to support 64-bit integers,所以升级到那个版本可能会解决这个问题。
答案 2 :(得分:1)
您可能正在使用Lua 5.2或更低版本。数字类型默认为WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.error.notValidEmail")));
assertEquals("Not valid email.", driver.findElement(By.cssSelector("span.error.notValidEmail")).getText());
,以C语言输入。double
的默认格式没有足够的精确度。
Lua 5.3支持整数子类型,默认为64位。相同代码输出的结果:
print