小数分隔符默认使用什么符号PHP,可以配置吗?

What sign for decimal separator uses PHP by default and can it be configured?

我正在使用 number_format 以不同格式显示小数(价格,根据区域配置等)。我更喜欢它而不是 money_format。无论如何,number_format 用于显示文本数量,因此,例如,我将为美国显示 ,203.56,为欧洲显示 1.090,00€。当然,物品价格总和等内部计算,我用number_format对价格、折扣等进行四舍五入,我用

number_format($price * quantity- $discounts ... , 2, ".", "");

我明白这是正确的,并且会完美地添加所有值,并在最终结果中限制为 2 个小数点。我将其存储在数据库中,稍后在导航器屏幕中显示每个案例(文本)的 number_format 版本。但我担心在我的服务器中,他们可能会更改配置,突然 PHP 会使用 , 作为小数点分隔符,混合计算的数量?这是可能的还是保证在数字计算中始终使用 . 的科学记数法作为小数点并且不使用千位分隔符?我很担心,因为PHP没有打字,所以number_format的"type"是字符串。我还必须转换为 (float) 吗?我做的测试没问题,但我担心会出问题。

您的担心是对的,这就是为什么您应该以原始 numeric 格式而不是格式化字符串的形式存储数字。应该对数值执行计算,而不是从逆向工程字符串表示中获得的值。

因此,将数字存储在 DECIMAL 中(或者更好的是,将以美分为单位的值存储在 INT 列中),然后在您的视图中格式化数字。

<?php echo '$'.number_format($price); ?>