Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 十进制到长-始终缺少点分隔符_C#_Type Conversion - Fatal编程技术网

C# 十进制到长-始终缺少点分隔符

C# 十进制到长-始终缺少点分隔符,c#,type-conversion,C#,Type Conversion,我想能够转换一个 varchar > decimal > long 当dbreader[11]将3319419,13作为varchar保存时 例如: decimal d = Convert.ToDecimal(dbreader[11], CultureInfo.InvariantCulture); 我明白了 当我将其转换为长对象时,我最终得到 long i = 3319419 我想以3319419,1结尾,因为long是整数,所以在long中不能以3319419,1结尾。 尝试

我想能够转换一个

varchar > decimal > long
dbreader[11]
3319419,13
作为varchar保存时

例如:

decimal d = Convert.ToDecimal(dbreader[11], CultureInfo.InvariantCulture);
我明白了

当我将其转换为长对象时,我最终得到

long i = 3319419

我想以3319419,1结尾,因为
long
是整数,所以在
long
中不能以3319419,1结尾。 尝试改用
double


编辑:现在,
double
恰好是一个浮点数。这意味着该类型能够表示的十进制位数不是固定的,而是可变的。因此,如果您想看到特定数量的十进制数字,那么这完全是一个显示问题。因此,为了查看只有一个数字的双变量,请按如下方式将其转换为字符串:
string.Format(“{0:00.0}”,my_双变量)

长是一个8字节的整数(整数)。如果您需要更高的精度,请使用双精度(8字节十进制)

恐怕永远不会
long
是系统的同义词。Int64
-一个64位整数值,因此它无法存储您要求的精度。请参见现实检查

3319419,1

长字符不能保留部分数字。1,2,3-不是1,1.1,1.2。这是一个长的定义


所以,不管你想要什么,你都不能在很长的时间内保持分数。要保留小数-请使用可以保留小数的数据类型。

a
long
没有任何小数。它是一个整数类型


您可能想使用
double
,或者将其保留为
decimal

长是一个8字节的整数(整数),而不是c#开发者我可能错了,但长不是一个整数数据类型吗?您希望整数包含浮点数吗?为了澄清,您希望将数字显示为文本,即“3319419,1”,还是将数字四舍五入到小数点后一位,即3319419.1?
long i = 3319419