草庐IT

八进制

全部标签

c# - 用逗号格式化十进制,保留尾随零

我想将小数转换为字符串,使用逗号作为千位分隔符,并保持创建小数时使用的相同精度。(将有2-5位有效数字)decimald=1234.4500M;//I'dlike"1,234.4500"varnotRight=d.ToString("###,###.#######");//1,234.45varalsoNotRight=d.ToString("###,###.00000");;//1,234.45000varnotRightEither=d.ToString("N");//1,234.45varnotRightEither2=d.ToString("G");//1234.45000没有

c# - 如何使用 string.Format() 来格式化用大括号包围的十六进制数?

输入:uinthex=0xdeadbeef;要求的输出:stringresult="{deadbeef}"第一种方法:显式添加{和};这有效:result="{"+string.Format("{0:x}",hex)+"}";//->"{deadbeef}"使用转义大括号输出为十进制而不是十六进制:result=string.Format("{{{0}}}",hex);//->"{3735928559}"看起来很有希望,现在我们需要做的就是按照上面的第一种方法添加:x十六进制说明符:result=string.Format("{{{0:x}}}",hex);//->"{x}"哦,亲爱的

C# 将对象转换为十进制

我正在尝试将值为0.39999999999999997的对象转换为十进制变量而不丢失精度。objectd=0.39999999999999997;我尝试了以下方法。decimalval1=Convert.ToDecimal(d);//val1=0.4objectval2=Convert.ChangeType(d,Type.GetType("System.Decimal"));//val2=0.4decimalval3=decimal.Parse(d.ToString());//val3=0.4decimalval4=(Decimal)d;//val4=0.4我知道这不是十进制数据类型无

c# - 要比较 double 和十进制,我应该将 double 转换为十进制还是将十进制转换为 double ?

我需要比较两个值。一个值是price这代表某物的当前价格等等decimal因为您实际上可以按照这个价格买卖东西。另一个值是estimatedPrice这是数学计算的结果,所以double因为它只是estimation你实际上不能通过这个esitmatedPrice做任何“操作”现在我想买如果price.那么我应该将price转换为double还是将estimatedPrice转换为decimal?我知道在转换后我会得到“略微不同”的数字,但似乎我没有其他选择。 最佳答案 这取决于数据。十进制具有更高的精度;double的范围更大。如

c# - 添加枚举值会破坏二进制兼容性吗?

想象一下DLL中的这个枚举。publicenumColors{Red,Green}添加枚举值会破坏二进制兼容性吗?如果我要更改它,现有的EXE会损坏吗?publicenumColors{Red,Green,Blue}我看到了thisanswer,但它似乎解决了插入值的问题。如果我将值添加到仅结尾,可以吗? 最佳答案 不,这不会破坏二进制兼容性(因为:程序集仍会加载等),因为枚举基本上是整数文字常量。在中间插入值显然是一个非常危险的想法,但您已经排除了它。但是,它可能会导致您需要防范的许多其他问题:一些代码(特别是switch语句)可

c# - 为什么 Guid.ToString ("n") 与从同一 guid 的字节数组生成的十六进制字符串不同?

考虑以下单元测试:[TestMethod]publicvoidTestByteToString(){varguid=newGuid("61772f3ae5de5f4a8577eb1003c5c054");varguidString=guid.ToString("n");varbyteString=ToHexString(guid.ToByteArray());Assert.AreEqual(guidString,byteString);}privateStringToHexString(Byte[]bytes){varhex=newStringBuilder(bytes.Length*

c# - 我如何在 C# 中获取 unicode 字符的十进制值?

如何在C#中获取unicode字符的数值?例如,如果泰米尔语字符அ(U+0B85)给出,输出应该是2949(即0x0B85)另见C++:Howtogetdecimalvalueofaunicodecharacterinc++Java:HowcanIgetaUnicodecharacter'scode?多码点字符一些字符需要多个代码点。在这个例子中,UTF-16,每个代码单元仍然在基本多语言平面中:>(即U+0072U+0327U+030C)>(即U+0072U+0338U+0327U+0316U+0317U+0300U+0301U+0302U+0308U+0360)更重要的是,一个“字

c# - UInt32.TryParse() 十六进制数不工作

出于某种原因,以下C#控制台程序总是输出:32Falsewtf=0我做错了什么?usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Globalization;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){Console.WriteLine(Convert.ToUInt32("0x20",16));UInt32wtf=0;Console.WriteLine(UInt32.TryParse(

c# - c#中 boolean 值的二进制表示是什么

我知道一个boolean值是1个字节(8位长)但我想知道它的二进制表示是什么。例如十进制=>二进制4=>100(00000100)8=>1000(00001000)boolean值=>??? 最佳答案 bool是C#中的内置基本类型。任何底层表示都是实现细节。C#4.0语言规范在第4.1.8节中指出:Thebooltyperepresentsbooleanlogicalquantities.Thepossiblevaluesoftypeboolaretrueandfalse.Nostandardconversionsexistbet

c# - 将数字转换为 .NET 中的十六进制值

我需要将整数转换为十六进制值。它看起来像这样:0x0201cb77192c851c当我做的时候stringhex=int.ToString("x")在C#中,它返回201cb77192c851c如何获得所需的结果? 最佳答案 一种方法是在“x”之后附加您需要的位数。这将根据需要用前导零填充输出。"0x"+myLong.ToString("x16");或string.Format("0x{0:x16}",myLong);来自TheHexadecimal("X")FormatSpecifier:Theprecisionspecifier