2017-10-18 10 views

答えて

0

発現は整数を返すC++のrand()とは異なり(範囲0.0〜1.0に)浮動小数点数をTclのrand()戻るように、直接変換できません。しかし、かなりの道徳的同等のはこれです:

expr { int(rand() * ($max - $min)) + $min } 

我々は(それだけでC++にヘルパー関数を書くようなものだ)を使用することがさらに容易にするために少しの手順にこれをラップすることができます:

proc randInRange {min max} { 
    return [expr { int(rand() * ($max - $min)) + $min }] 
} 

# Example of calling it and using the result: 
puts [randInRange 1 10] 
+0

答えてくれてありがとうDonal、しかしなぜ私たちは(%)を使うことができないのですか?方程式のなかで、乗算ではなくモード分割(%)を使いました。 – Qusay

+0

Tclの 'rand()'は '0.0'と' 1.0'の間の浮動小数点数を返しますが、Cの 'rand()'は整数を返します。 –

+0

Ok ...あなたの答えと努力に感謝します。 – Qusay

関連する問題