我想輪雙?值,所以如果有2,3應該是2,但如果有null,那麼應該爲空。如何使用雙精度可空類型?
3
A
回答
17
沒有直接的方法來輪可空雙。您需要檢查變量是否有值:如果是,請將其舍入;否則,返回null
。
你需要的,如果你做到這一點使用條件?:
運營蒙上了一點:
double? result = myNullableDouble.HasValue
? (double?)Math.Round(myNullableDouble.Value)
: null;
或者:
double? result = null;
if (myNullableDouble.HasValue)
{
result = Math.Round(myNullableDouble.Value);
}
2
return d.HasValue ? Math.Round(d.Value) : (double?)null;
+4
關閉,但不完全。把一個強制轉換(null)來修復它。 – 2011-05-26 17:37:37
20
正如其他人所指出的那樣,很容易夠到這樣做是一次性的。要做到這一點一般:
static Func<T?, T?> LiftToNullable<T>(Func<T, T> func) where T : struct
{
return n=> n == null ? (T?) null : (T?) func(n.Value);
}
現在你可以說:
var NullableRound = LiftToNullable<double>(Math.Round);
double? d = NullableRound(null);
哎,現在你可以用做任何方法,它並返回值類型。
+1
給男人一條魚,教一個男人去釣魚。 – 2011-05-26 17:48:53
相關問題
- 1. 如何在ANDROID中插入雙精度類型的空值
- 2. 如何將空格的雙精度字符串更改爲我可以使用的雙精度數組
- 3. C++使用長雙精度使用雙精度
- 4. 數據類型雙截斷精度
- 5. Jtable與雙單元格類型精度
- 6. 如何使用psycopg2綁定雙精度
- 7. 如何確定一個字符串類型是雙精度還是長精度
- 8. 如何驗證jsf中雙精度型的空值?
- 9. 要返回一個雙精度型,即使類型在c#中是雙精度型,我也必須進行雙精度型轉換?
- 10. 如何在批處理文件中使用雙精度型
- 11. 如何使用parseInt進行雙精度型?
- 12. 如何轉換在c中的sql類型雙精度#
- 13. 如何將類型bytea轉換爲雙精度
- 14. 如何在grails中正確保存雙精度類型?
- 15. 如何轉換黑莓中的雙精度雙精度?
- 16. 我過度使用可空類型?
- 17. 任何理由更喜歡單精度到雙精度數據類型?
- 18. 如何將雙精度類型更改爲unix中的整數類型?
- 19. 單精度和雙精度
- 20. 雙精度10點精度
- 21. 更精確的數字數據類型比雙精度?
- 22. 如何以精確的精度在Python中打印雙精度?
- 23. 如何使雙精度型的NumberFormat返回
- 24. IEEE雙精度
- 25. 雙倍精度
- 26. 雙精度CUFFT
- 27. 雙精度
- 28. 雙精度值
- 29. 雙精度?
- 30. 何時在C中使用指針指針進行類型雙精度合法?
以及@dtb和@Eric Lippert的答案都很好,但我想知道我應該標記爲正確答案。 @dtb具有較低的聲譽,因此他的答案將被標記爲正確的答案:D。但@Eric你的解決方案也非常棒。謝謝你們兩位。順便說一句,這個方法應該被添加到.net 5,有沒有任何列表可以添加什麼shoudl被添加到另一個.net freamework? – kosnkov 2011-05-26 18:14:37
@kosnkov,不要根據誰的代表接受程度更高或更低,根據誰的答案解決您的問題最好。你用dtb的方法去創造一個像Eric這樣的方法嗎?我們不是在平衡這裏的規模,而是在客觀上找出解決具體問題的答案。然而,在兩個*相同*的答案中,我建議使用提交時間作爲決勝者,但這只是我。 – 2011-05-26 18:39:19
@Anthony Pegram,夥伴聽着,如果兩個都很好,我該怎麼辦?或者你說的時間提交或其他任何事情,在這種情況下很難決定哪一個更好。 – kosnkov 2011-05-26 18:54:57