对于发票,我想确定我的总金额是否有不必要的分数。例如5.01美元或5.51美元。如果它检测到分然后我运行if语句去除分:减0.01
例如。
将30.51
更改为0.01
并发出警告消息
并且还有
30.51
至0.51
并且还有
30.51
至1
两者都来自POST,因此它们都是 PHP字符串。
但不用担心 - 由于dmayo
,我现在让它工作了$pieces = explode(".", $TotalAmt);
echo "<br>p1:".$pieces[1]; // piece2
$p1 = $pieces[1];
$spl1 = str_split($p1);
$TAmttmp = 0;
//echo "<br>sp11:".$spl1; // error convert array to string
$TAmttmp = $spl1[0];
echo "<br>TAmttmp: with useless cent".$TAmttmp;
echo "<br>IT:".$IT;
if ($TAmttmp == 0.01) //so if there is 1 cent subtract the useless cent.
$TAmt = $TAmt - 0.01;
echo "<br>TAmt: with useless cent".$TAmt;
echo "<br>TAmt: without useless cent".$TAmt;
答案 0 :(得分:1)
@Gumbo是对的,我们需要了解您的转化背后的逻辑,以提供准确的答案。
你可以爆炸:
$var = explode('.',$_POST['val']);
$digits = $var[1]; // this will give you the digits after the decimal point
现在,您可以根据自己的逻辑做所需的事情。
您也可以使用substr()
找到小数点(它是否总是从右边三个位置?)然后抓住子串。
不确定哪种效率更高。
答案 1 :(得分:1)
我不知道你想要什么,但也许这会有所帮助:
$nr = "30.51";
echo round($nr - floor($nr), 2); // 0.51
echo round(($nr * 10 - floor($nr * 10)) / 10, 2); // 0.01
echo round(($nr * 10 - floor($nr * 10)) * 10); // 1