就像这个问题的提问者一样,我想知道为什么Math.ceil(Math.random() * 10)不优先于Math.floor(Math.random() * 10) + 1,并发现这是因为 Math.random 有一个很小(但相关)的机会准确返回 0。但有多小?
进一步的研究告诉我,这个随机数精确到小数点后 16 位......好吧,有点。这就是我很好奇的“那种”。
我知道浮点数与小数的工作方式不同。虽然我在细节上挣扎。如果这个数字是一个严格的十进制值,我相信台球的可能性是十分之一(或十千万亿,在美国系统中) - 1:10 16。
这是正确的,还是我搞砸了,或者浮点数有什么不同?
我试图更好地理解参数化 sql 作为 SQL 注入的解决方案。
可以说我有一个tblCustomer字段CustName,Phone和Address。还可以说我有一个供新客户输入数据的输入表单,其中的控件名为txtName、txtPhone和txtAddress。
我可以运行以下 vba 代码:
dim strName, strPhone strAddress, strSQL as string
strName = me.txtName
strPhone = me.txtPhone
strAddress = me.txtAddress
strSQL = "INSERT INTO tblCustomer (CustName, Phone, Address) _
VALUES (" & strName & ", " & strPhone & ", " & strAddress & ");"
DoCmd.RunSQL strSQL
Run Code Online (Sandbox Code Playgroud)
但是如果有人指定地址“Robert'); DROP TABLE tblCustomer; --”(眨眼)我就会遇到一些严重的问题。
我使用过 vba 参数,但它们对我没有帮助。那么,当人们说使用参数来解决问题时,他们的意思是什么?