草庐IT

decimals

全部标签

c++ - 十进制数字的区域设置感知编辑控件子类化(格式 [sign] [xxx...] [decimal separator] [yy...] )

简介及相关信息:我有一个编辑控件,它应该只接受有符号十进制数——类似于-123.456。此外,它应该能够识别区域设置,因为每个国家/地区的小数点分隔符都不相同-在美国使用点,而在欧洲则使用逗号等。我为解决这个问题所做的努力:到目前为止,我已经使用子类化来实现它。这是我实现子类化的逻辑,通过伪代码表达:if((characterisnota[digit,separator,orCTRL/Shift...]OR(charisseparatorandwealreadyhaveone)){discardthecharacter;}首先,我创建了一个辅助函数来确定char数组是否已经有一个小数点

hadoop - 为什么 sqoop 将导入中的 DECIMAL 类型从 Teradata 映射到 DOUBLE?

我有Sqoop版本:1.4.6当将数据从Teradata导入Hive时,我发现DECIMAL类型被转换为DOUBLE。我想知道为什么Hive具有完全等效的数据类型。 最佳答案 这是因为他们为所有RDBMS通用地编写了它。DECIMAL映射为DOUBLE。sourcecode的有用部分:publicstaticStringtoHiveType(intsqlType){switch(sqlType){caseTypes.INTEGER:caseTypes.SMALLINT:return"INT";caseTypes.VARCHAR:ca

hadoop - 是否可以在 sqoop 类型映射中指定 DECIMAL 比例和精度?

我正在尝试通过sqoop选项指定列类型映射:--map-column-hive>=DECIMAL\(15,2\)但这会返回错误:Columnmappingshouldbetheformkey=value[,key=value]*如果我删除小数位数和精度值(以及括号),那会起作用,但它默认为DECIMAL(10,0)。我需要能够指定实际值。我正在运行Sqoop版本:1.4.6 最佳答案 Sqoop1.4.7中修复了这个错误修复并不简单。例如,对于col3=decimal(1,1)列,需要编写col3=decimal(1%2C1)检查S

java - 在 native Java map reduce 中将 Parquet FIXED_LEN_BYTE_ARRAY 转换为 DECIMAL

我的底层数据是使用HIVE输出格式(org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat)编写的尝试使用nativeJavaMapreduce读取此数据byte[]b=value.getBinary(value.getType().getFieldIndex(field),0).getBytes();HiveDecimalhd=HiveDecimal.create(b,true);此处的值是org.apache.parquet.example.data.Group类型hd在这种情况下变为NULL。但下面对字符串/整

hadoop - 如何在 HIVE HQL 中将 HEX 值转换为 Decimal

我有Hive1.1,但在将HEX值转换为Decimal或BIGINT时遇到问题。使用UNHEX('2BD1BCAE0501250E')应该返回=3157512269357720846但是相反,我得到了类似WingDings=+Ѽ�%的东西我已经尝试过DECODE、ENCODE、BASE64...但似乎没有任何效果。有没有其他人尝试这样做?谢谢 最佳答案 Conv(STRINGnum,intfrom_base,intto_base)将数字从给定的基数转换为另一个数conv('2BD1BCAE0501250E',16,10)

hadoop - Hive 列从 decimal 转换为 double 导致 NULL

我的配置单元表table1表的架构如下所示[CREATETABLEtable1(p_decimal1DECIMAL(38,5))ROWFORMATDELIMITEDFIELDSTERMINATEDBY','STOREDASTEXTFILE]我在表中有以下值row:col(p_decimal1)row1:12345123451234512345123.45123在后期如果我执行selectCAST(p_decimal1ASDOUBLE)fromtable1;查询然后我得到NULL作为输出。你能解释一下为什么它会变成NULL吗?? 最佳答案

mysql - 如何使用 MySQL DECIMAL?

我不太了解MySQL的DECIMAL。我需要该行能够包含从00.0001到99.9999的任何数字。我将如何构建它以使其像这样工作? 最佳答案 DOUBLE列不与DECIMAL列相同,如果您将DOUBLE列用于财务数据,您会遇到麻烦。DOUBLE实际上只是FLOAT的double(64位而不是32位)版本.float是realnumbers的近似表示而且它们并不准确。事实上,像0.01这样的简单数字在FLOAT或DOUBLE类型中没有精确的表示。DECIMAL列是精确的表示形式,但对于更小范围的可能数字,它们会占用更多空间。要创建一

mysql - 如何使用 MySQL DECIMAL?

我不太了解MySQL的DECIMAL。我需要该行能够包含从00.0001到99.9999的任何数字。我将如何构建它以使其像这样工作? 最佳答案 DOUBLE列不与DECIMAL列相同,如果您将DOUBLE列用于财务数据,您会遇到麻烦。DOUBLE实际上只是FLOAT的double(64位而不是32位)版本.float是realnumbers的近似表示而且它们并不准确。事实上,像0.01这样的简单数字在FLOAT或DOUBLE类型中没有精确的表示。DECIMAL列是精确的表示形式,但对于更小范围的可能数字,它们会占用更多空间。要创建一

java - Android : How to get just two digit after the point in decimal value ? 不想截断值

如何获取小数点后两位的double值。例如,如果a=190253.80846153846那么结果值应该像a=190253.80尝试:我试过这个:publicstaticDecimalFormattwoDForm=newDecimalFormat("#0.00");在代码中a=Double.parseDouble(twoDForm.format(((a))));但我得到的值是190253.81而不是我想要的值190253.80那么我应该为此改变什么?? 最佳答案 因为Math.round()返回最接近参数的int。通过加1/2、取结果

android:inputType ="numberDecimal"与 InputType.TYPE_NUMBER_FLAG_DECIMAL

以下条件的计算结果为假。应该不是真的吧?editText.getInputType()==InputType.TYPE_NUMBER_FLAG_DECIMAL特别是在xml文件中,我有android:inputType="numberDecimal"调试表明editText.getInputType()=8194和InputType.TYPE_NUMBER_FLAG_DECIMAL=8192我错过了什么? 最佳答案 numberDecimal指的是TYPE_CLASS_NUMBER和TYPE_NUMBER_FLAG_DECIMAL。