请参阅:PHP Division Float Value Issue
参考问题我写了以下代码。这可以用不同的方式或更少的代码完成。?
当两个给定值中的任何一个小于 1 且带有十进制值时,以下内容将有所帮助。这是一个好习惯吗?
<?php
$First_Value = 0.005;
$Second_Value = 0.1;
// Check the First Value for Decimal
$First_Whole = floor($First_Value); // 0
$First_Fraction = $First_Value - $First_Whole; // .005
// Check the Second Value for Decimal
$Second_Whole = floor($Second_Value); // 0
$Second_Fraction = $Second_Value - $Second_Whole; // .1
// Multiply with 100 becaus ethe decimal is restricted to 3 digit so multiply with 100 works
if(($First_Whole == 0) || ($Second_Whole == 0)){
$First_Value = $First_Value*100; // 0.5
$Second_Value = $Second_Value*100; // 10
}
echo $tableCount = $Second_Value / $First_Value; // 20
?>
答案 0 :(得分:1)
您不需要进行任何计算。做最后一个部门。
...
$value1 = .005;
$value2 = .1;
echo $value1 / $value2;
结果为20
如果您只想获得2位小数,则可以在分割后使用数字格式。如果您在分割之前尝试格式化,那么您仍然可以编号格式。但是,如果不能那么为什么不将两个数字乘以1000(三位小数)%乘以1减去mod与实际的差值。在这种情况下,这将给你3,除以1000
[编辑]
获取余数做以下示例
...
$v = .0055;
$d = .1;
$a = $d/$v;
$s = $a % ceil($a);
$r = $a - $s;
answer = .18181818181818181 ...