簡體   English   中英

十進制的值太大或太小

[英]Value was either too large or too small for a Decimal

我有以下一段代碼:

double shortfall = GetSomeNumber(); //3.3588548831176006E+29

if (shortfall > 0)
{
  returnValue = Convert.ToDecimal(shortfall);
}

這會產生上述錯誤。

嗯,這是不言自明的。

decimal.MaxValue是 79,228,162,514,264,337,593,543,950,335 - 你的數字比這個大。

盡管decimal的精度比double更好,但double的范圍更大——它可以處理非常非常大和非常非常小的數字。

現在,如果您能告訴我們您真正想要做什么,我們可以嘗試幫助找到解決方案……說實話,混合使用doubledecimal很少是一個好主意。

這意味着返回的值太大,無法轉換為十進制。

十進制值可以介於正 79,228,162,514,264,337,593,543,950,335 到負 79,228,162,514,264,337,593,543,950,335 之間 - 請參閱MSDN

Double可以處理更大的數字 - 負 1.79769313486232e308 到正 1.79769313486232e308。 這些不會全部轉換為十進制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM