在 PHP 中将字符串转换为双精度
Posted
技术标签:
【中文标题】在 PHP 中将字符串转换为双精度【英文标题】:Converting String to a double in PHP 【发布时间】:2013-07-10 16:19:02 【问题描述】:我需要转换一个字符串,比如 37152548 到 371525,48 或 371525.48
我正在尝试 number_format()
和 floatval()
但不成功。
$var = '37152548';
$var = number_format($var, 2);
echo $var; // output 37,152,548.00
【问题讨论】:
尝试除以 100 :) 你的意思是$var/100
?
number_format
返回一个字符串。 floatval
工作正常;它返回您给它的值的float
。 究竟你想做什么?
这个字符串来自一个导入文件,我需要用它做计算。
【参考方案1】:
你可以试试
$var = '37152548';
echo number_format($var / 100, 2, ".", "");
输出
371525.48
【讨论】:
【参考方案2】:它工作正常。 37152548 是一个整数,所以数字格式只会添加逗号。如果您希望最后 2 个数字在小数点的另一侧,则需要将其除以 100
$var = number_format($var/100, 2);
如果 var 是“371525.48”,那么它将按照您想要的方式对其进行格式化。如果您想要不带逗号,请尝试
$var = number_format($var/100, 2,'.','');
【讨论】:
【参考方案3】:无论如何,php 都会将您的字符串转换为数字。至于小数位,既然你说:
我需要转换一个字符串,比如 37152548 到 371525,48 或 371525.48
...好吧,除以 100:
$var = '37152548';
echo $var / 100; //outputs 371525.48
如果你想确定你有一个数字,那么使用floatval
(因为它返回一个数字而不是像number_format这样的字符串):
$var = '37152548';
$var = floatval($var) / 100;
echo $var; //outputs: 371525.48
echo '<br>'; //new line
//And you can do calculations:
echo $var - 500; //outputs: 371025.48
floatval 将您的字符串转换为浮点变量。注意:PHP不区分单精度和双精度,实际上doubleval
只是floatval的别名。
【讨论】:
以上是关于在 PHP 中将字符串转换为双精度的主要内容,如果未能解决你的问题,请参考以下文章