JavaRush /Java 博客 /Random-ZH /更深入地了解 BigDecimal 数字
grishin
第 27 级
Харьков

更深入地了解 BigDecimal 数字

已在 Random-ZH 群组中发布
最后,经过三个月的休息后,我又回来参加课程了。一月初我休假了。然后我决定转而学习其他学科,例如 HTML/CSS/Javascript。在此过程中,我开始学习技术(servlet 和 JSP)。那时我已经完成了24级,对内部课程有点卡住了——不是有什么不清楚,只是所学到的知识必须系统化,因为太多是短时间内学到的。在“驰骋欧洲”模式中。所以,现在我决定仔细阅读Horstman第一卷,巩固我对Java Core的知识,同时完成前面级别的剩余任务,然后继续进行级别。我从第 15 级关于阶乘的奖金问题开始。处理完这个问题后,我决定深入研究 BigDecimal 类。我在互联网上没有找到任何特别受欢迎的文章,所以我查看了文档,其中的第一段立即让我思考,不知为何,其中的所有内容都不是很清楚。我决定要查个水落石出,为了不让自己的工作白费,我把所有的东西都整理成文章的形式,现在发到社区里大家交流一下,也许可以对某人有帮助。所以我把第一段分成句子。里面只有5句话。第 3 和第 4 句加了下划线,并移至段落末尾(为什么我这样做 - 请继续阅读)。并按照这个改变的顺序进行了相应的翻译。 原文第一段
  1. 不可变的、任意精度的有符号十进制数。
  2. BigDecimal 由任意精度整数未缩放值和 32 位整数小数位数组成。
  3. 如果为零或正数,则小数位数是小数点右侧的位数。
  4. 如果为负,则该数字的未缩放值乘以 10 的缩放负次方。
  5. 因此,BigDecimal 表示的数字值为 ( unscaledValue × 10 -scale )。
句子顺序重新排列的原文
  1. 不可变的、任意精度的有符号十进制数。
  2. BigDecimal 由任意精度整数未缩放值和 32 位整数小数位数组成。
  3. 因此,BigDecimal 表示的数字值为 ( unscaledValue × 10 -scale )。
  4. 如果为零或正数,则小数位数是小数点右侧的位数。
  5. 如果为负,则该数字的未缩放值乘以 10 的缩放负次方。
扩展翻译(翻译中的每个点对应于原文中的一个点)
  1. 这些是不可变的小数1十进制数,符号为2,任意长度34
  2. BigDecimal 数字由两个参数指定。其中第一个,即所谓的。未缩放值是无限长度的整数。仅知道这个参数,就无法说出有关 BigDecimal 数字的实际值的任何信息。为此,您必须知道第二个参数 - 一个称为“scale”的 32 位整数。
  3. 然后可以使用以下公式计算 BigDecimal 数的值: unscaledValue × 10 -scale
  4. 如果 BigDecimal 为零或正数,则小数位数为小数点后的位数。
  5. 如果 BigDecimal 为负数,则其未缩放的值将乘以 10 的幂,并带有负号。
翻译注释
1. 小数,因为“任意精度”除其他外包括:
   这些是精确的数字,并且精确的数字必须有小数点,
   换句话说 - 分数。
2. 那就是 可以是正的也可以是负的。
3. 任意长度,因为“任意精度”也意味着
   “任意数量的数字。”
4. 事实上,BigDecimal 数字是实数。但安装
   不同的设置,您不仅可以在科学计算中使用它们,
   以及金融领域。
所以,划线的句子对我来说是主要的困惑因素——我实际上会把它们从文本中删除,因为事实上它们是关于同一件事的,而且,它们与第 5 句中所说的事情是关于同一件事的。那些。连续三个句子只表示未缩放的值乘以 10 的幂,等于带有负号的缩放。当你第一次读到它的时候,这会让人感到困惑,因为当你读第3句时,你明白,既然有if,那就意味着这里会有一件事,而下一句中会有别的东西。但不,这两个句子说的是同一件事,只是用词不同。好吧,关于同一件事的连续第三句话(段落中的最后一个)可能就像一个控制镜头。目前还不清楚为什么文本会以如此混乱的方式编写,因为最后一句中的 公式unscaledValue × 10 -scale尽可能清晰、明确和全面地给出了大数的定义。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION