2012-05-14 84 views
2

這可能是一個比Inno Setup問題更多的帕斯卡問題。當我這樣做時:Inno Setup - 將整數652轉換爲浮點數給出6.52?

floatnum := 652; 

存儲在float中的實際值是6.5200000而不是652.000000?

更新:有人指出,6.52實際上是652這是讓我感到困惑,所以我想我應該更具體。下面是一些代碼,我有麻煩了:

floatnum := 305/600; 

我預計floatnum將舉行接近0.5083333,但它並沒有,而是抱着5.08333325。這對我來說並不合適。我錯過了什麼?

+1

你能表現出更多的代碼?將整數轉換爲浮點數(在Innosetup *或* Pascal中)不會*任意「除以100」。這裏一定還有其他的東西......恕我直言...... – paulsm4

+0

@paul那就是代碼。我將floatnum聲明爲'floatnum:Single;'當我在調試器中查看它時,它說6.5200000。 – loop

+0

TLama給了你正確的答案(這,順便說一句,我會*從來沒有*猜到)。它*不*顯示你「6.52」。它顯示「6.52 * 10^2」! – paulsm4

回答

6

我想你只是錯過了整個調試器的價值interpratation。請參見下面的截圖:

enter image description here

6.52000000000000E+0002 is actually 652什麼也印證了下一行的值:

enter image description here

+0

我仍然不明白。我更新了我的問題。 6.52應該是6.52它是怎麼樣的652? – loop

+1

如果您指定值652,則表示爲6.52 x 10^2。 – TLama

+1

這被稱爲[科學說明](http://en.wikipedia.org/wiki/Scientific_notation#E_notation)。 – Deanna