乘以

时间:2017-08-30 03:59:16

标签: php

我陷入了我的代码的这一部分。所以我试图获得特定值的30%,但我没有得到正确的输出。请看下面的价值。

foreach($salary->getValues() as $key => $value) {
    echo 'salary:       '.$value['salary'];
    echo 'gross salary: '.$value['salary'] * .30;
}

假设我们得到的薪水数组是40,000(我已经在我的代码中得到这个)现在乘以它.30答案必须是12,000。因此

预期产出:

salary: 40,000 gross salary: 12,000

发生了什么

salary: 40,000 gross salary: 12

请帮助

4 个答案:

答案 0 :(得分:2)

使用str_replace

foreach ($salary->getValues() as $key => $value) {
                    echo 'salary:       ' . $value['salary']; 
                    echo 'gross salary: ' . str_replace(',', '', $value['salary'] ) * .30 ;
                }
            }

输出:1200

DEMO:https://3v4l.org/ZdQGZ

答案 1 :(得分:1)

“40,000”是一个字符串。当试图乘以时,PHP尝试将其转换为整数,遇到逗号(,)并返回错误(但奇怪的是,似乎继续使用逗号之前的int继续进程)< / p>

一种方法是在乘法之前删除逗号,然后在乘法后将其返回number format

$newSalary = number_format(str_replace("," , "", $value['salary']) * .30);

答案 2 :(得分:0)

money_format()方法包装乘法结果。

参考:http://php.net/manual/en/function.money-format.php

尝试money_format('%.3n', $value['salary'] * .30);

之类的内容

答案 3 :(得分:0)

不要使用这种&#34;默认格式&#34;,而是自己格式化任何打印值......

尝试这样的事情:

foreach ($salary->getValues() as $key => $value) {
   printf( "salary: %.3f gross salary: %.3f\n", $value['salary'], $value['salary'] * .3 );
}