簡體   English   中英

如何比較雙精度數和小數點后30位精度最高?

[英]how to compare double number with 30 decimal places with the highest precision?

我需要比較兩個大十進制數與30個小數位。 我還需要在小數點后30位檢測出差異,因此我需要這樣做:

double number_1=80.004752165027610999459284357728;
double number_2=80.004752165027610999459284357727;

導致此:

double result = 0.000000000000000000000000000001

由於數字本身的性質,這似乎是不可能的(我已經嘗試過使用float,long double)。 我只有一組有限的小數位數可以操作。 那么在那種情況下我如何才能達到更好的精度呢? 也許我可以使用某些框架的功能? 我沒有發現在nsnumber和google中有用的東西

您可以使用NSDecimalNumber 它最多可以使用38位數字。

NSDecimalNumber是NSNumber的不可變子類,它提供了一個面向對象的包裝器,用於進行10進制算法。 一個實例可以表示任何可以表示為尾數x 10 ^指數的數字,其中尾數是不超過38位的十進制整數,指數是從–128到127的整數。

文檔

暫無
暫無

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

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