-2

我想在 php 字符串中显示一个浮点数。

就像是:

My float number is: 0.00003485

但是当我使用 echo 时,我看到它是这样的:

My float number is: 3.485E-5

另外,我知道我可以使用printf("%.10f",$float)代码,但是我需要在字符串中的很多地方使用它,所以我不能使用printf.

我应该在字符串上使用什么代码来显示浮点数?我不想要那个缩短的数字(3.485E-5)。

4

3 回答 3

0

在某些情况下,我更喜欢将浮点数声明为字符串:

MyFloatNumber = "0.0000000000000000000000003485";

所以,

回声 MyFlatNumber; //0.0000000000000000000000003485

于 2019-01-20T06:00:07.157 回答
0

我知道我可以使用printf("%.10f",$float)代码,但是我需要在字符串中的很多地方使用它,所以我不能使用 printf。

我不得不恭敬地不同意这一点:

printf('My float number is: %1$.8f (again: %1$.8f; once more: %1$.8f)', 0.00003485);

或者,如果您在字符串中需要它:

$foo = sprintf('My float number is: %1$.8f (again: %1$.8f; once more: %1$.8f)', 0.00003485);

当然,如果您的意思是它违反了项目风格指南或公司政策,那就另当别论了。

我应该在字符串上使用什么代码来显示浮点数?

真的吗?PHP 中的浮点数是 64 位IEEE 754双精度格式位图。根据这个在线转换器,数字0.00003485将是:

0010010001010111110011100001110100101110111001001111

当然,它们不是实际的 1 和 0,而是不同的电压电平;-)

于 2019-01-20T11:06:46.500 回答
-1

你可以编写一个函数来以任何你想要的方式处理这个问题。为什么不?

function fval($f, $precision = 9) { 
    return number_format($f, $precision); 
}

然后任何你需要格式化的地方,把它叫出来:

$f = 3.485E-5;
echo fval($f);  // this will print: 0.000003485
于 2019-01-20T05:11:37.213 回答