程序猿改变世界
在SQLServer联机丛书中,float浮点型给出的定义是:
用于表示浮点数值数据的大致数值数据类型。浮点数据为近似值;因此,并非数据类型范围内的所有值都能精确地表示。
从定义中可以看出,浮点型数据为近似值,所以在转换成字符串时,它就会转换成相对精确的数值,自然长度就变短了。
那么问题来了,由于Rand()这个函数它返回的是一个介于0到1(不包括0和1)之间的伪随机float值,而我想通过这个函数获取12位长度的随机数,那么怎么获取呢?
那这里我们可以变通下,使用decimal或numeric类型的变量接收Rand()返回的值。这两个数据类型都是可以指定固定精度和小数位数,如decimal(18,2),numeric(18,2)。
第一个参数表示精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。默认值为18.
第二个参数表示小数位数:小数点右边可以存储的十进制数字的最大位数。小数位数必须是从0到指定的精度之间的值。
所以,以上的问题,就可以通过指定一个decimal(12,12)类型的变量来接收解决了
来源:时间去哪儿了博客(微信/QQ号:903918446),转载请保留出处和链接!
本文链接:http://timegowhere.com/post/sql_float_to_varchar.html
【个人微信】
【时间去哪儿了】
教育类博客,关注知识的分享与交流。
欢迎关注公众号!
加我微信
Copyright © 2014-2016 timegowhere.com. All rights reserved. 粤ICP备15081222号