草庐IT

double-byte

全部标签

c# - 如何使用适当的 cultureinfo 将字符串转换为 double

我在数据库中有两个nvarchar字段来存储DataType和DefaultValue,我有一个DataTypeDouble和英文格式的值为65.89875。现在我希望用户根据所选的浏览器语言格式查看值(英语中的65.89875应显示为德语中的65,89875)。现在,如果用户从德语格式编辑为65,89875,相当于英语中的65.89875,而其他用户从英语浏览器中查看,则为6589875。发生这种情况是因为在数据库中它在nvarchar列中存储为65,89875并且当使用英语文化转换时它变为6589875因为它将,视为分隔符,它是德语的小数运算符.我如何让它适用于所有浏览器?

c# - 使用 byte[] 作为字典中的键

我需要使用byte[]作为Dictionary中的键。由于byte[]不会覆盖默认的GetHashCode方法,因此包含相同数据的两个单独的byte[]对象将使用两个单独的槽在字典里。基本上我想要的是:Dictionarydict=newDictionary();dict[newbyte[]{1,2,3}]="mystring";stringstr=dict[newbyte[]{1,2,3}];//I'dlikestrtobesetto"mystring"atthispoint有没有简单的方法来做到这一点?我唯一能想到的是构建一个只包含byte[]的包装类,并根据byte[]的内容覆盖

c# - 如何将 float 组转换为 byte[] 并返回?

我有一个Floats数组,需要将其转换为字节数组并返回到float[]...谁能帮我正确地做到这一点?我正在使用bitConverter类,发现自己无法尝试附加结果。我这样做的原因是我可以将运行时值保存到IO流中。如果重要的话,目标存储是Azure页面blob。我不关心它存储在什么字节序中,只要它的输入与输出相匹配即可。staticbyte[]ConvertFloatToByteArray(float[]floats){byte[]ret=newbyte[floats.Length*4];//asinglefloatis4bytes/32bitsfor(inti=0;i

c# - 将 double 格式化为两位小数

我一直在努力使打印出来的答案精确到小数点后两位。所有涉及的数学都必须保持两位小数的格式。我已经尝试了一些事情,但我不确定要改变什么才能使这项工作成功。doublepdt1=239.99;doublepdt1Total;doublepdt2=129.75;doublepdt2Total;doublepdt3=99.95;doublepdt3Total;doublepdt4=350.89;doublepdt4Total;doublewage=200;doublepercentage=9;doubletotal;doubleanswer;doublei=100;doublea;doubleb

c# - 为什么不在 System.Double 和 System.Long 上使用 volatile?

像我这样的问题是asked,但我的有点不同。问题是,“为什么C#中的System.Double和System.Int64等类型不允许使用volatile关键字?”乍一看,我回答了我的同事,“嗯,在32位机器上,这些类型至少需要两次滴答才能进入处理器,而.Net框架有意抽象出特定于处理器的细节像那样。”他对此回应说:“如果它因为特定于处理器的问题而阻止您使用某项功能,那么它就不是抽象任何东西!”他暗示处理器特定的细节不应该显示给使用框架的人,该框架从程序员那里“抽象”了这样的细节。因此,框架(或C#)应该抽象出那些并做它需要做的事情来为System.Double等(无论是信号量、内存屏障

c# - 为什么 C# 中的字节与其他整数类型不同,命名为 byte 和 sbyte?

刚刚翻了一下规范,发现byte是奇数。其他的有short、ushort、int、uint、long和ulong。为什么这里命名为sbyte和byte而不是byte和ubyte? 最佳答案 这是一个语义问题。当您想到一个字节时,您通常(至少我是这样)想到0-255之间的8位值。这就是byte的含义。二进制数据不太常见的解释是-128到127的带符号值(sbyte)。对于整数,根据带符号的值来思考更直观,所以这就是基本名称样式所代表的。u前缀允许访问不太常见的无符号语义。 关于c#-为什么C

c# - 在 C# 中将 int[] 转换为 byte[]

从长远来看,我知道如何做到这一点:通过创建一个必要大小的字节数组并使用for循环从int数组中转换每个元素。我想知道是否有更快的方法,因为如果int大于sbyte,上面的方法似乎会中断。 最佳答案 如果您想要按位复制,即从一个int中获取4个字节,则使用Buffer.BlockCopy:byte[]result=newbyte[intArray.Length*sizeof(int)];Buffer.BlockCopy(intArray,0,result,0,result.Length);不要使用Array.Copy,因为它会尝试转换

c# - 在 C# 中将小数转换为 double 会产生差异

问题总结:对于一些十进制值,当我们将类型从decimal转换为double时,会在结果中添加一个小分数。更糟糕的是,可能有两个“相等”的十进制值在转换时会产生不同的double值。代码示例:decimaldcm=8224055000.0000000000m;//dcm=8224055000doubledbl=Convert.ToDouble(dcm);//dbl=8224055000.000001decimaldcm2=Convert.ToDecimal(dbl);//dcm2=8224055000doubledbl2=Convert.ToDouble(dcm2);//dbl2=822

c# - 从 C# 将 byte[] 保存到 SQL Server 数据库中

如何将byte[]数组保存到SQLServer数据库中?这个byte[]包含一个HashAlgorithm值。再次需要数据以备后用。所以转换它而不是让它恢复到原来的状态,这不是我想要的。提前致谢! 最佳答案 你应该可以这样写:stringqueryStmt="INSERTINTOdbo.YourTable(Content)VALUES(@Content)";using(SqlConnection_con=newSqlConnection(--your-connection-string-here--))using(SqlComman

c# - 将 double 限制为小数点后 3 位

这是我想要实现的目标:如果double的小数位超过3位,我想截断第三位以外的所有小数位。(不要四舍五入。)Eg.:12.878999->12.878如果double少于3位小数,则保持不变Eg.:125->12589.24->89.24我遇到了这个命令:doubleexample=12.34567;doubleoutput=Math.Round(example,3);但是我不想圆。根据上面发布的命令,12.34567->12.346我想截断该值,使其变为:12.345 最佳答案 double没有小数位-它们不是基于小数位开头的。您可