首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigDecimal用于计算和显示股票和价格?

BigDecimal用于计算和显示股票和价格?
EN

Software Engineering用户
提问于 2016-07-28 16:00:15
回答 1查看 1K关注 0票数 2

我正在接收一个账户的股票价格和持有股份的数量的平面文件。一个文件包含价格和股票到小数点6位。另一个文件包含小数点后12位的价格和股票。

系统需要持久化,并在以后显示这些值(最好是在平面文件中接收到的小数位数)。价格和股票将需要用于计算业绩(根据价格变化)和持有百分比(根据股票)。性能和持有百分比只需显示到小数点后两位。

在这里双倍满足我的需求还是BigDecimal更合适?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2016-07-29 05:39:10

没有double不能满足您的需要。

如果不是因为需要计算,String将最好地满足您的需要。

这就剩下BigDecimal了。它的计算速度比double慢,但它将忠实地计算每一个基数10位数。

double的问题在于它的显示方式近似于它存储的内容。我们在基数10中显示double,但将其存储在基2中。当它只表示连续值(如温度)的测量值时,这是很好的。使用它来表示像货币这样的离散基数10小数点值,并邀请罗恩·利文斯顿理查德·普赖尔偷取你的半便士。

double似乎也应该是离散的。毕竟,它也存储在1和0中。在现实中是这样。但是基数2离散和基数10离散并不总是匹配,因为我可以用两个尺子显示,不同的划分油墨。如果BigDecimal表示顶级标尺,double表示底层标尺,那么尺子的每一个值都可以在我们的计算机中完美地表示出来。然而,你不能总是完美地从一个转换到另一个。

两者在1英寸处匹配。它们在1/2英寸处匹配。他们不匹配在1/10英寸。要达到1/10,你必须除以5。double只知道如何除以2。

更糟糕的是,double将试图接近1/10。甚至可以把显示器转到看上去像.1的地方。但是因为它并不是真的在里面,所以它的数量只是在等待你的计算的混乱。

试图double你的钱是麻烦。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/326037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档