2011-06-10 98 views
0

道歉,如果這已被問到,但我找不到它。C#++和 - 增加雙變量0.1 0.1

我有一個雙變量,我正在做++和 - 增加和減少值。

我的號碼是95.8例如,與++將使96.8

但我想++運算符,以0.1每次遞增,因此數量將增加至95.9例如。

感謝, 丹

+0

爲什麼你不使用+ =運算符? – Waleed 2011-06-10 22:22:33

+0

難道你不認爲這可能會混淆會期待不同行爲的其他人嗎? 「myDouble + = 0.1;」有什麼問題? ? – Andrei 2011-06-10 22:23:35

+2

順便提一句,請注意,每次增加0.1會引入浮點錯誤(因爲0.1不能表示爲二進制浮點中的確切數字)。考慮將數字表示爲一個整數,例如,在您的示例中爲958和959,然後在顯示時除以10。 – 2011-06-10 22:27:18

回答

5

,除非你創建你自己的類型(類),並覆蓋這些運營商這是不支持的。

使用以下代替:

x += 0.1; 
+3

我會無恥地扼殺那些會使++運算符重載的人在數值類型上增加1以外的值。 – 2011-06-10 22:27:19

+0

@Mike:是的,這裏也一樣。特別是因爲已經有語法以清晰簡潔的方式來完成此任務。 – 2011-06-10 22:33:10

+0

完美的喬納森,我以前沒有使用+ =運算符。它很簡單,我忽略了它;-) – 2011-06-10 22:34:29

3

根據定義,++--運營商去了1

你可以用你想要的語義創建一個類,但是你會讓代碼的未來讀者感到困惑。

爲什麼要打這個系統?爲什麼不說x += 0.1;等?