[問題] 輸出除上RAND_MAX的數值 C++

看板C_and_CPP (C/C++)作者 (Terry)時間14年前 (2012/04/30 23:20), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2008 問題: 請教一下 我寫一段CODE int rand_value=1+rand()%(RAND_MAX); double cout_rand_value=rand_value/RAND_MAX; 然後輸出cout_rand_value; 我檢查過rand_value和RAND_MAX都不為零 可是除出來的結果就是0 是因為小數點太多位數,吃不進去嗎? 我有把宣告改成 long int 和long double似乎也不能解決 不知道有沒有什麼方法能夠讓除上RAND_MAX的數不為零呢? 謝謝幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.118.109

04/30 23:22, , 1F
((double)rand_value)/((double)RAND_MAX)
04/30 23:22, 1F

04/30 23:22, , 2F
兩個double其實可以只加一個 然後外面的括號也不見得要
04/30 23:22, 2F

04/30 23:22, , 3F
就是了
04/30 23:22, 3F

04/30 23:23, , 4F
當然如果要用static_cast<double>()更好
04/30 23:23, 4F

04/30 23:23, , 5F
我試試看,謝謝您
04/30 23:23, 5F

04/30 23:25, , 6F
可以了,真的不為零,謝謝^_^
04/30 23:25, 6F
文章代碼(AID): #1FdgtOSU (C_and_CPP)
文章代碼(AID): #1FdgtOSU (C_and_CPP)