0
我正在玩弄Ruby和Latex來爲一個registor創建一個顏色編碼集。我有以下代碼塊。當試圖運行此,band1
= 1e+02.
for循環的迭代次數計算
我試圖band1
= (BigDecimal(i) * 100).to_f
,想可能有一些奇怪的浮點運算問題。整數乘以整數應該創建一個整數。我嘗試了各種其他的東西,但無濟於事。
(1..9).each do |i| #Band 1
(0..9).each do |j| #Band 2
(0..11).each do |k| #Band 3
#Band 3 Start
#these are the colors of the resistor bands
b1 = $c_band12[i]
b2 = $c_band12[j]
b3 = $c_band3[k]
b4 = "Gold"
oms = ((i*100) + (j*10)) * $mult[k]
band1 = i*100
band2 = j
band3 = $mult[k]
end
end
end
不知道我錯過了什麼。我應該在這些迭代中使用each_with_index
嗎?我試過這個:
(1..9).each_with_index {|i, indexi| #Band 1
(0..9).each_with_index {|j, indexj| #Band 2
(0..11).each_with_index {|k, indexk| #Band 3
#Band 3 Start
#these are the colors of the resistor bands
b1 = $c_band12[i]
b2 = $c_band12[j]
b3 = $c_band3[k]
b4 = "Gold"
oms = ((i*100) + (j*10)) * $mult[k]
band1 = indexk * 100
我得到了同樣的答案。我不明白爲什麼1*100
應該等同於這麼大的數字。
編輯:附加信息:如果我有:band1=i*10
那麼計算是正確的。實際上,計算正確率最高爲99.
。但是,我的值是一個整數(無小數),並且乘以100並不能達到我的預期。 我期望1 * 100等於100,我收到1 * 100 = 1e + 02(第一次迭代) – user1805035
Oups,誤讀您的問題。下次保持嚴格的最低限度;它也會幫助你更好地理解。 –
沒有問題 - 是的,我看到band1應該是Fixnum(不能完全記住爲什麼,我相信變量賦值並不重要)。 不知道我怎麼得到這個值。可能LaTeX正在轉錄它。 – user1805035