java为啥不提供decimal

author author     2023-05-09     693

关键词:

参考技术A Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
BigDecimal一共有4个构造方法:
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。追问

谢谢答复。可是我想知道为什么不提供像int、double之类的基本类型,可以用 + - * / 可以直接操作。用BigDecimal的方法操作实在不自然,尤其是复杂的计算表达式。像C#中就有decimal作为基本类型,非常好用。我不知道Java已经发展到这么高了,为什么不提供精确数据的decimal基本数据类型?

谢谢答复。可是我想知道为什么不提供像int、double之类的基本类型,可以用 + - * / 可以直接操作。用BigDecimal的方法操作实在不自然,尤其是复杂的计算表达式。像C#中就有decimal作为基本类型,非常好用。我不知道Java已经发展到这么高了,为什么不提供精确数据的decimal基本数据类型?

追答

你要进行+-*/操作,先操作,再转换成decimal

参考技术B 你指的是BigDecimal啊,java里面有的。追问

谢谢答复。可是我想知道为什么不提供像int、double之类的基本类型,可以用 + - * / 可以直接操作。用BigDecimal的方法操作实在不自然,尤其是复杂的计算表达式。像C#中就有decimal作为基本类型,非常好用。我不知道Java已经发展到这么高了,为什么不提供精确数据的decimal基本数据类型?

追答

Java有float和double,但是数据有边界,如果碰到更大的数据,就只能用bigdecimal了。这是他们的思路,没有什么为什么,希望你了解了。

如果类具有参数化构造函数,为啥Java不提供默认构造函数? [复制]

】如果类具有参数化构造函数,为啥Java不提供默认构造函数?[复制]【英文标题】:WhyJavadoesn\'tprovidedefaultconstructor,ifclasshasparametrizedconstructor?[duplicate]如果类具有参数化构造函数,为什么Java不提供默认构造函数?[复制]【发布时... 查看详情

decimal类型的字段为啥不能为null

定义一个为null的情况接收的值,或者说数据库不可能存的值如-1sql.append("selectN_XMXZ,N_LXSBHfromt_zxxm_lxswhereN_LXSBH=");改为:sql.append("selectnvl(N_XMXZ,-1)N_XMXZ,N_LXSBHfromt_zxxm_lxswhereN_LXSBH=");前台取出如何是-1的说明数据库里面... 查看详情

decimal在java里怎么表示?

...此,BigDecimal表示的数值是(unscaledValue×10-scale)。BigDecimal类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。参考技术Adouble或者float如果要控制小数点,看看格式化类哈。本回答被提问者采纳 查看详情

为啥 sqoop 将 DECIMAL 类型从 Teradata 导入到 DOUBLE?

】为啥sqoop将DECIMAL类型从Teradata导入到DOUBLE?【英文标题】:WhydoessqoopmapDECIMALtypesinanimportfromTeradatatoDOUBLE?为什么sqoop将DECIMAL类型从Teradata导入到DOUBLE?【发布时间】:2017-02-2200:02:07【问题描述】:我有Sqoop版本:1.4.6将数据从Terada... 查看详情

将string类型转换为decimal为啥会自动四舍五入

急decimal是一种非常适合来记录金额的类型。应该是默认精确到小数点后两位的,如果string的值精度过高,自然会四舍五入。如果是在数据库中的话,可以设置decimal精度的decimal(18,2)参考技术A因为decimal数据类型本来就是四舍五入... 查看详情

为啥 OleDb ExecuteScalar 方法在查询 COUNT 时返回 Decimal?

】为啥OleDbExecuteScalar方法在查询COUNT时返回Decimal?【英文标题】:WhydoesOleDbExecuteScalarmethodreturnDecimalwhenqueryingforCOUNT?为什么OleDbExecuteScalar方法在查询COUNT时返回Decimal?【发布时间】:2011-12-1619:18:54【问题描述】:我正在使用OleDb... 查看详情

decimal模块

Python十进制数学计算模块decimalPython提供了decimal模块用于十进制数学计算,它具有以下特点:提供十进制数据类型,并且存储为十进制数序列;有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext().prec=x来设定,... 查看详情

为啥在 Python 中 Decimal('0') > 9999.0 为真?

】为啥在Python中Decimal(\\\'0\\\')>9999.0为真?【英文标题】:WhyisDecimal(\'0\')>9999.0TrueinPython?为什么在Python中Decimal(\'0\')>9999.0为真?【发布时间】:2011-01-2615:12:10【问题描述】:这在某种程度上与我的问题Whyis\'\'>0TrueinPython?... 查看详情

decimal类型的字段为啥不能为null

参考技术A数据库中最好不要有null,最好设置默认为0或者空字符,这是基本的数据库常识本回答被提问者采纳 查看详情

为啥 Decimal.Divide(int, int) 有效,但 (int / int) 无效?

】为啥Decimal.Divide(int,int)有效,但(int/int)无效?【英文标题】:WhydoesDecimal.Divide(int,int)work,butnot(int/int)?为什么Decimal.Divide(int,int)有效,但(int/int)无效?【发布时间】:2010-11-0519:15:44【问题描述】:为什么将两个32位int数除为(int/int)... 查看详情

为啥逗号在 int.Parse() 和 decimal.Parse() 中与 InvariantCulture 的行为不同?

】为啥逗号在int.Parse()和decimal.Parse()中与InvariantCulture的行为不同?【英文标题】:Whydocommasbehavedifferentlyinint.Parse()anddecimal.Parse()withInvariantCulture?为什么逗号在int.Parse()和decimal.Parse()中与InvariantCulture的行为不同?【发布时间】:2012... 查看详情

为啥实体框架将参数作为 DECIMAL(5,0) 传递给使用 NUMERIC(19) 定义的列?

】为啥实体框架将参数作为DECIMAL(5,0)传递给使用NUMERIC(19)定义的列?【英文标题】:WhyisEntityFrameworkpassingaparameterasDECIMAL(5,0)foracolumndefinedwithNUMERIC(19)?为什么实体框架将参数作为DECIMAL(5,0)传递给使用NUMERIC(19)定义的列?【发布时间... 查看详情

为啥 JUnit 不提供 assertNotEquals 方法?

】为啥JUnit不提供assertNotEquals方法?【英文标题】:Whydoesn\'tJUnitprovideassertNotEqualsmethods?为什么JUnit不提供assertNotEquals方法?【发布时间】:2010-11-0823:02:03【问题描述】:有人知道为什么JUnit4提供assertEquals(foo,bar)而不是assertNotEqual(f... 查看详情

为啥从 BigDecimal 转换为 DECIMAL 时 impala-jdbc 会抛出异常?

】为啥从BigDecimal转换为DECIMAL时impala-jdbc会抛出异常?【英文标题】:Whyimpala-jdbcthrowsexceptionwhencastingfromBigDecimaltoDECIMAL?为什么从BigDecimal转换为DECIMAL时impala-jdbc会抛出异常?【发布时间】:2019-05-3108:03:10【问题描述】:我正在使用... 查看详情

为啥 "%.10f" % Decimal(u) 可以发出带有文字冒号的字符串?

】为啥"%.10f"%Decimal(u)可以发出带有文字冒号的字符串?【英文标题】:Whycan"%.10f"%Decimal(u)emitastringwithaliteralcolon?为什么"%.10f"%Decimal(u)可以发出带有文字冒号的字符串?【发布时间】:2018-02-0221:44:40【问题描... 查看详情

为啥 CreateProcessW() 不执行提供的命令?

】为啥CreateProcessW()不执行提供的命令?【英文标题】:whyisn\'tCreateProcessW()performingtheCommandprovided?为什么CreateProcessW()不执行提供的命令?【发布时间】:2020-03-1722:15:52【问题描述】:为了呈现最少的可重现代码,我编写了一个代... 查看详情

为啥要convert.todouble,直接赋值不可以?

decimalfirstNumber,secondNumber;stringuserName;Console.WriteLine("Enteryourname:");userName=Console.ReadLine();Console.WriteLine("Welcome0!",userName);Console.WriteLine("Nowgivemeanumber:");firstNumber=Convert.ToDecimal(Console.ReadLine());Console.WriteLine("Nowgiv... 查看详情

为啥 jQuery 不提供 .firstChild 方法?

】为啥jQuery不提供.firstChild方法?【英文标题】:WhydoesjQuerynotprovidea.firstChildmethod?为什么jQuery不提供.firstChild方法?【发布时间】:2012-04-2307:28:00【问题描述】:我已经看到很多关于使用jQuery选择第一个子元素的最快方法的讨论... 查看详情