所以我需要在2个双精度之间随机生成一个双精度数,在这个特定情况下,它是随机生成一个GPA。我最初尝试这样做:
var formatted_address = "Lake Villa, IL 60046, USA";
alert(formatted_address.replace(/(.+)\-([A-Z]{2})$/, "$1, $2").replace("\-", " "));
这确实很有用......我可以从0.0到3.9,但它必须从0.0到4.0(包括0.0和4.0)!将代码中的4更改为5也可以提供4.1和更高,但这并不好。
我的问题是,什么是更有效的代码编码方式?如果有一个相当直接的答案/如果这看起来很简单,我道歉,但我对编码和c ++很新。谢谢!
答案 0 :(得分:1)
如果只是找到一个小数位的gpa,你可以找到0到41之间的int,然后除以10得到一个小数。例如:
double rand2 = (double)(rand()%41)/10;
rand()%41将生成一个0到40之间的数字。然后我们将其转换为double并除以10.因此,如果生成的数字为34,则我们得到3.4作为double。
要使用其他双倍作为范围,您只需将它们乘以您想要跟随数字的小数位数,然后再除以该数字
//Range== 0,34 with 3 decimal places
double rand2 = (double)(rand()%35000)/1000;