下面是我的SQL查询。我已经将其转换为将小数转换为2个小数点。但是当值的前导数字为零时,它将显示“。##”,其中“#”是数字。
SQL查询:
CAST(SHIFTCLOSING.OPENINGAMOUNT AS DECIMAL(18,2)) AS OPENINGAMOUNT
值12.35486 ==> PHP 12.35中的输出(确定)
值0.34845 ==> PHP .3484中的输出(不显示0)
答案 0 :(得分:1)
您可能正在从数据库中获取一个字符串。您可以尝试使用PHP的printf()
函数强制采用一种格式。
如果您使用printf('%.4f', '0.34845')
(%f
用于显示浮点值,而.4
则设置四个十进制数字),则会得到前导零为{{1 }}。如果您希望将该值设置为变量,也可以使用0.3484
来代替,只是要注意它将是一个字符串而不是数字。
答案 1 :(得分:1)
使用SQL FORMAT
,然后将模式设置为'0.##'
,当丢失时将强制前导零。
FORMAT(CAST(SHIFTCLOSING.OPENINGAMOUNT AS DECIMAL(18,2)), '0.##') AS OPENINGAMOUNT
请参阅:https://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-2017