如果我有一个数字,比如说2.32,我想用它做数学,那就不行了。最简单的例子:
$income = $commission; //Commission is 2.32, retrieved from XML
echo "income: $income<br>";
$income100 = $income*100;
echo "income100: $income100<br>";
我得到的结果是:
income: 2.32
income100: 200
如何在不改变数学的情况下准确地使用十进制数字?
非常感谢!
答案 0 :(得分:5)
您需要以下列方式指定$income
以摆脱基础SimpleXMLElement
:
$income = (float) $commission;
Example of what happens when you don't:
$x = simplexml_load_string("<a>2.4</a>");
echo $x * 100; // output: 200
答案 1 :(得分:2)
答案 2 :(得分:0)
浮点数的问题在于你不能用它们表示十进制数(除非它可以写成整数a/b
和a
的{{1}},即使那时也是如此b
和abs(a) < pow(2,52)
是2的力量。
使用字符串函数获取整数值可能会更好:
b
这将从小数部分中分割整数部分,确保decima部分长度为两位,并将其推到整数部分的末尾,从而有效地将原始数字乘以100。
答案 3 :(得分:0)