round函数使用后,小数点前的0不见了

时间:2024-03-29 19:50:23

ROUND函数用于将数字四舍五入到指定的小数位数。

其基本语法为`ROUND(number, num_digits)`,其中`number`是要进行四舍五入的数字,`num_digits`是保留的小数位数。如果`num_digits`大于0,则四舍五入到指定的小数位;如果`num_digits`等于0,则四舍五入到最接近的整数;如果`num_digits`小于0,则在小数点左侧进行四舍五入。

举例:

但是小四舍五入的是小数的时候, 小数点前面的0就丢失了

问题起源

oracle 数据库字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0 例如0.13就变成了.13

解决办法:

用to_char函数格式化数字显示select to_char(0.1268,'fm9999999990.00'); 结果:0.13 

重点要看 'fm9999999990.00',表示整数部分最多10位,小数部分2位,整数部分最后一位是0

fm表示去掉转位字符串后前面的空格,不加fm,0.34前面会有空格的