这种奇怪的浮点格式是如何出现的,既有点又有逗号?

How such strange float format appears, both with dot and comma?

最近我在我的应用程序中重构测试并破坏了其中一个。但只有当我 运行 整个测试集时,我才能重现问题。如果我 运行 只有一个 class 有问题测试,一切正常。

问题行:

$float_value = (float)$string_value;

当只执行一个测试 class 时它看起来如何(好的情况):

出现问题时的表现:

然后我在将该值插入数据库时​​遇到问题,因为数据库不同意该值是数字。

“逗号和点同时出现”是什么意思?

我尝试查找有关逗号作为分数部分分隔符和出现点的信息,但失败了。

我们是否有针对此类行为的任何设置?因为只有在之前执行过其他测试才能重现。

于是我发现了一个问题并解决了。原因是在一种将小数点设置为逗号的测试方法中调用了 setlocale()。