如果有一个小问题,我想。
我在某个问题上成功使用了此答案中的代码:Get DIV content from external Website
效果很好。我的输出例如是9,1。 现在我想把这个百分比,所以应该是91%。
$second_step[0]
给出9,1。
我使用以下代码将其设为百分比:
$score = $second_step[0] * 10;
...但这会输出90而不是91。
我做错了什么?它看起来像一个简单的代码,但我不确定它为什么输出90而不是91。
希望有人能帮助我。
抱歉我的英语不好:)
答案 0 :(得分:2)
试试这个
$val = floatval(str_replace(',', '', $second_step[0]));
答案 1 :(得分:1)
可能与数字格式有关。您的示例显示9 [逗号] 1,PHP将其视为字符串,并在计算时返回脚本遇到的第一个数字部分(仅为9)。如果要进行数学运算,则需要将其转换为数字(读取9 [期间] 1)。
$score = floatval(str_replace(',', '.', $second_step[0])) * 10;
答案 2 :(得分:0)
你得到90,因为它认为10是一个int。 因此,您的输出将转换为int。
试试这个: $ score = $ second_step [0] * 10.0; PHP将10视为int,但将10.0视为浮点数。 您也可以通过这样做将10投射到浮点数: $ score = $ second_step [0] * floatval(10);
这两种方法都有效,但第一种方法是最好的。
答案 3 :(得分:0)
您的$second_step
被视为整数,请参阅http://php.net/manual/de/language.types.string.php#language.types.string.conversion,除非您使用setlocale()明确更改脚本的区域设置。
如果逗号需要留在那里并且您没有更改区域设置,则可以执行$temp = str_replace("," , "." , $setlocale[1]);