rand()函数:返回大于等于 0 及小于 1 的均匀分布随机数。
即:0<=rand()<1
所以:0<=RAND()*1.5<1.5
int()函数:将数字向下舍入到最接近的整数。
0<=RAND()*1.5<1.5范围内的整数只有0和1,
所以:INT(RAND()*1.5)只会返回2个值,
当0<=RAND()*1.5时,INT(RAND()*1.5)结果为0;
当0
看你公式思路,是想产生1个0~<=1.5的一位小数吧?
有3种方式可以满足要求:
1.公式法
ROUND(RAND()*(1.5-0),1)
其中:0<=RAND()*(1.5-0)<1.5,
ROUND()函数:按指定位数对数值进行四舍五入。
0<=RAND()*(1.5-0)<1.5经四舍五入后,
0<=ROUND(RAND()*(1.5-0),1)<=1.5
但是,当RAND()*(1.5-0)=0或1时,而“单元格格式”设置为“常规”时,结果显示为0或1(整数)
用函数TEXT()对RAND()*(1.5-0)进行处理,
TEXT(ROUND(RAND()*(1.5-0),1),"0.0"),
这样就得到了0.0~1.5之间的一位小数(文本格式),如需转换为“数值”
方法:VALUE(TEXT(ROUND(RAND()*(1.5-0),1),"0.0"))
或:TEXT(ROUND(RAND()*(1.5-0),1),"0.0")+0
2.将"单元格格式”设置为“数值”,一位小数
3.通过工具条设置
此方法本身就是基于四舍五入法,所以公式可为:RAND()*(1.5-0),此方法只是显示为一位小数,实际值未变化,如:RAND()*(1.5-0)=0.12,显示为0.1,如果参与后续计算,仍然是0.12。
前面2种方法显示值即为最终值。
综上所述:
纯公式法:
TEXT(ROUND(RAND()*(1.5-0),1)
或:VALUE(TEXT(ROUND(RAND()*(1.5-0),1),"0.0"))
或:TEXT(ROUND(RAND()*(1.5-0),1),"0.0")+0
2.简单(公式)方法:“RAND()*(1.5-0)”+工具条设置
看函数的名字,好像是C语言的程序?
int(rand()*15)/10.0
可以得到0.0~1.4之间的随机数,以%g或%.1f的格式输出。
=INT(RAND()*1.5)/10
或者
=RAUND(RAND()*1.5,1)