如何在计算后正确转换小数

时间:2017-12-21 18:32:30

标签: php html mysql

我有以下问题,如何在乘法后将其作为字符串显示为0.00004?

$v = -0.00004;
$v = $v * -1;
echo $v; // 4.0E-5

长篇故事

因此我需要保存到MySQL数据库,但没有问题,因为我使用下面的查询:

$sql_insert = $conn->prepare("insert into tbl_transaction (amount) values ($v)");

但是当我输出到我的HTML时,显示4.0E-5。我尝试使用number_format,但在某些情况下,小数将远远超过这个,所以它不是一个选择。

4 个答案:

答案 0 :(得分:0)

试试这个。

echo sprintf('%f', $v);

或者:

$b = sprintf('%f', $v);
echo $b;

答案 1 :(得分:0)

您可以尝试以下方式。

$v = -0.00004;
$v = $v * -1;
echo number_format($v, 5);

希望这会有所帮助。

答案 2 :(得分:0)

在使用所需精度格式化数字后,您需要去除尾随零。

这应该可以解决问题:

$v = -0.00004;
$v = number_format($v * -1, 20);
print rtrim($v, 0);

答案 3 :(得分:0)

如果您在第一次分配后<style> .link { color: blue; font-size: 30px; } </style> <a href="abc123.com" class="link">Submit</a>,您会看到“问题”不是计算。

var_dump($v)

number_format()可用于返回值的格式化版本。您可以获取字符串值的长度,并将其传递给number_format。

$v = -0.00004;
var_dump($v);  //float(-4.0E-5)

所以,你的代码是:

var_dump(number_format($v,strlen(strval($v)))); // string(10) "-0.0000400"

在您准备好显示值之前,您不需要使用number_format,因为指数数字与格式化/十进制数字的值相同。