gpt4 book ai didi

php - 浮点乘法和评估问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:31 25 4
gpt4 key购买 nike

这个问题最好用代码表达:

$var1 = 286.46; // user input data
$var2 = 3646; // user input data
$var3 = 25000; // minumum amount allowed
$var4 = ($var1 * 100) - $var2; // = 250000
if ($var4 < $var3) { // if 250000 < 250000
print 'This returns!';
}

var_dump($var4) 输出:float(25000) 转换为 int 时,输出:int(24999) - 从而问题所在。

虽然我真的不知道该怎么办。乘以 100 时会出现此问题,虽然我可以采取一些小技巧来解决这个问题(例如 *10*10),但我想知道是否有解决此问题的“真正”解决方案。

谢谢 :)

最佳答案

这是一个可怕的 hacky 解决方案,我有点讨厌自己,但这给出了预期的行为:

<?php

$var1 = 286.46; // user input data
$var2 = 3646; // user input data
$var3 = 25000; // minumum amount allowed
$var4 = ($var1 * 100) - $var2; // = 250000
if ((string) $var4 < (string) $var3) { // if 250000 < 250000
print 'This returns!';
}

将它们转换为字符串,然后根据需要将它们转换回 int/float 以进行比较。我不喜欢它,但它确实有效。

你真的需要BC Math用于 PHP 中的精确 float 学运算。

关于php - 浮点乘法和评估问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9159427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com