私信  •  关注

Mehdi

Mehdi 最近回复了
4 年前
回复了 Mehdi 创建的主题 » 在python列表中查找浮点

根据 http://0.30000000000000004.com/

你的语言没有被破坏,它在做浮点运算。计算机只能以本机方式存储整数,因此需要某种方法 代表十进制数。这个陈述有一些 不准确程度。这就是为什么,经常是.1+.2!=3。

为什么会这样?其实很简单。当你有一个 基10系统(和我们的系统一样),它只能表示使用 基本要素。10的主因子是2和5。所以1/2, 1/4、1/5、1/8和1/10都可以清楚地表示,因为 分母都使用10的素数。相反,1/3,1/6,和 1/7都是重复小数,因为它们的分母使用素数 系数3或7。在二进制(或基2)中,唯一的素因子是2。 所以你只能把只包含2作为 主要因素。在二进制中,1/2、1/4、1/8都可以清晰地表示 作为小数。而1/5或1/10则是重复小数。所以0.1 和0.2(1/10和1/5),而在基数为10的系统中是干净的小数 在计算机正在运行的BASE2系统中重复小数。 当你在这些重复的小数上做数学运算时 当你转换计算机的基础2时遗留下来的剩菜 (二进制)一个人类可读性更强的基数10的数字。

编辑: 您试图在最后一行中显示$id;但是您在php代码中是在哪里设置的?

试试这个:

$con = mysqli_connect("localhost","DB_NAME","PWD");  
if (mysqli_connect_errno())  
{  
    echo "Failed to connect to MySQL: " . mysqli_connect_error();  
}  
mysqli_select_db($con,"DB") or die ("no database");   
$sql="SET @update_ID := 0;  
    UPDATE TABLE_234 SET PLAYERNAME = PETER, ID = (SELECT @update_ID := ID)  
    WHERE PLAYERNAME IS NULL  
    LIMIT 1;  
    SELECT @update_ID as ID";

if (mysqli_multi_query($con,$sql))
{
  do
    {
    // Store first result set
    if ($result=mysqli_store_result($con))
      {
        while ($row=mysqli_fetch_row($result))
        {

        $ID=$row[0];
        }
      }
    }
  while (mysqli_next_result($con));
}

echo "ID=" . $ID;  
mysqli_close($con);