PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   計算機的最大值 (https://www.pcdvd.com.tw/showthread.php?t=1169405)

joe2001 2019-12-07 06:24 PM

計算機的最大值
 
170!*24.770431103196687061

2^1023.99999999

這兩個值,如果再個別增加,就會呈現無法計算。不論是工程計算機,或是excel 函數都是。
有人知道為什麼嗎?是位址不夠?
兩個相減後的數,也蠻大的。

答案將來會更新在這邊。
https://joe2001.pixnet.net/blog/post/68560628

healthfirst. 2019-12-07 06:32 PM

目前要拿Google那台量子電腦來當計算機

才知道最大值到哪

typh 2019-12-07 08:07 PM

這裡的人不但一個比一個(神)精,而且一個比一個還牛(皮)。所以我都不太敢在這裡談論類似這種的…… :D

kamuy 2019-12-07 08:36 PM

引用:
作者joe2001
170!*24.770431103196687061

2^1023.99999999

這兩個值,如果再個別增加,就會呈現無法計算。不論是工程計算機,或是excel 函數都是。
有人知道為什麼嗎?是位址不夠?
兩個相減後的數,也蠻大的。


2^1025 這個在Win10的計算機可以出現結果

3.595386269724631815458610381578 *10^308

能不能計算的差異,應該只是程式算法上的差異造成的限制吧

我猜excel應該是直接用double來寫才會這樣

算bug嗎?我覺得不算

頂多算issue


如果都用手工土砲自己用大數運算的方式寫

應該就不會有無法計算這種事

kamuy 2019-12-07 09:03 PM

剛才試了一下

直接用c++內建的sqrt跟pow來算

果真只用double的sqrt跟pow的確會有問題

換成用array寫的就沒問題

看起來應該就是double的鍋了 :flash:

微軟官方也有列出excel的限制:

Excel儲存格限制


計算的規格與限制

數字精確度
15 位數

最小的可容許負數
-2.2251E-308

最小的可容許正數
2.2251E-308

最大的可容許正數
9.99999999999999E+307

最大的可容許負數
-9.99999999999999E+307

經由公式取得的最大可容許正數
1.7976931348623158e+308

經由公式取得的最大可容許負數
-1.7976931348623158e+308

看起來用double這就是原因所在了

joe2001 2019-12-08 12:24 AM

引用:
作者kamuy
剛才試了一下

直接用c++內建的sqrt跟pow來算

果真只用double的sqrt跟pow的確會有問題

換成用array寫的就沒問題

看起來應該就是double的鍋了 :flash:

微軟官方也有列出excel的限制:

Excel儲存格限制 (https://support.office.com/zh-tw/article/excel-%E7%9A%84%E8%A6%8F%E6%A0%BC%E5%8F%8A%E9%99%90%E5%88%B6-1672b34d-7043-467e-8e27-269d656771c3)


計算的規格與限制

數字精確度
15 位數

最小的可容許負數
-2.2251E-308

最小的可容許正數
2.2251E-308

最大的可容許正數
9.99999999999999E+307

最大的可容許負數
-9.99999999999999E+307

經由公式取得的最大可容許正數
1.7976931348623158e+308

經由公式取得的最大可容許負數
-1.7976931348623158e+308

看起來用double這就是原因所在了


謝謝分享,看來如此。



可以請問這個值的來由嗎?
1.7976931348623158e+308


所有的時間均為GMT +8。 現在的時間是05:50 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。