在MySQL中,我有一个属性P10
,它是一个十进制(6,2)。如果我在Yii2中回显它,我会得到20,45
-为什么要用逗号,为什么不指向呢?我如何在配置中设置decimalSeparator
并不重要。如果将20,45
与2.1
相乘,我得到的是 42 而不是 42.945 ,因此似乎20,45
被截断为{{ 1}}在计算中使用时,我不知道为什么。我已经花了很多时间进行搜索,这使我逐渐发疯。
有趣的是,我在Yii2 gridview中回显了两个属性,并且在MySQL中都为小数(6,2),但是仍然以点作为小数分隔符和另一个为逗号...? / p>
我是否必须明确告诉Yii2小数是十进制,然后将其额外格式化为小数?
您能指出我正确的方向吗?
代码:
20
答案 0 :(得分:0)
20,45被截断为20
是的。在数字上下文(*
)中使用字符串(即“ 20,45”)时,将对该字符串进行尽可能多的解析。在这种情况下,,
将停止数字,从而忽略 ,45
。 (对比:“ 截断”表示要包含45,然后扔掉。)
获取20,45
而非20.45
的方法是将“语言环境”设置为例如“ de”(德语)。
下面是一个来自manual的示例:
SELECT FORMAT(12332.2,2,'de_DE');
-> '12.332,20'