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