当前位置: 代码迷 >> PB >> 小数位判断,怎么自动判断保留几位小数
  详细解决方案

小数位判断,怎么自动判断保留几位小数

热度:152   发布时间:2016-04-29 05:33:02.0
小数位判断,如何自动判断保留几位小数?
if (( mprecords_currentoutqty - round( mprecords_currentoutqty,0) = 0.00),"#,##0","#,##0,##")

如上,在数据窗口中我想设置某列当该列取整的值等于该列的值,则显示格式为"#,##0";
否则的话显示为"#,##0,##"

但我实际测试发现没有达到我想要的效果,不知道各位有没有碰到过类似的问题,如何解决的?


------解决方案--------------------
引用:
if (( mprecords_currentoutqty - round( mprecords_currentoutqty,0) = 0.00),"#,##0","#,##0,##")

如上,在数据窗口中我想设置某列当该列取整的值等于该列的值,则显示格式为"#,##0";
否则的话显示为"#,##0,##"

但我实际测试发现没有达到我想要的效果,不知道各位有没有碰到过类似的问题,如何解决的?

#,##0,##应该为#,##0.##或者#,##0.0#

------解决方案--------------------
引用:
非常感谢,经测试,原始是我无意中将.输入为,导致的错误;

正确表达式应为:if (( mprecords_currentoutqty - round( mprecords_currentoutqty,0) = 0.00),"#,##0","#,##0.##")

这个是我目前想到的对于小数位的处理办法,但是不通用,不知道各位有没有更好的办法?


既然这个没问题,你需要通用的话,就动态修改表达式好了
------解决方案--------------------
这样写
if (mprecords_currentoutqty  = int(mprecords_currentoutqty ),'###,##0','###,##0.00')
或者是
if (( mprecords_currentoutqty - int( mprecords_currentoutqty,0) = 0.00),"#,##0","#,##0.##")
  相关解决方案