我正在使用
十进制(5,1)
存储我的数据。
当值为12.2, 66.4
时......一切正常。
但是非十进制值:5, 10 , 20
....当echo将是5.0, 10.0
...
我如何回应它们:
1, 2.2, 2.5, 10, 10.5, 10.6, 11
答案 0 :(得分:1)
您需要查看该值并决定如何格式化它。类型规范说“在小数点后保留一位数字”,而MySQL则努力做到这一点。
有很多方法。这是一个:
select (case when val = cast(val as int) then format(val, 0)
else format(val, 10) end)
格式添加逗号,对于大于1,000的数字,这对我来说似乎是理想的。但如果您不喜欢,还有其他方法。
答案 1 :(得分:1)
Gordon Linoff的答案可能会解决问题,但这是PHP的方法:
if (intval($var) == $var) {
echo intval($var);
} else {
echo $var;
}
或者,如果您不喜欢三元条件:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
答案 2 :(得分:0)
适用于任意数量小数位数的通用解决方案: 删除所有尾随零,如果最后一个字符是句点,也将其删除:
TRIM(TRAILING '.' FROM (TRIM(TRAILING '0' FROM (CAST(col AS VARCHAR(40))))))