在IRC上的一次对话中,有人指出了以下内容:decimal.Parse("1.0000").ToString()//1.0000decimal.Parse("1.00").ToString()//1.00decimal类型如何/为什么像这样保持精度(或者更确切地说,有效数字)?我的印象是这两个值是相等的,而不是不同的。这也引发了进一步的问题:在数学运算中如何确定有效数字的个数?在序列化过程中是否保留了有效数字的数量?当前的文化是否会影响处理方式? 最佳答案 在数学运算中如何确定有效数字的个数?这在ECMA-334中指定C#4规范11
我有一个amount字段,它是数据库中的小数。我需要始终用小数点左边的10个数字和小数点后两个数字来显示此金额。例子:Amount=245.00应显示为0000000245.00此外,金额可能超过1,000或10,000,应显示为:0000001245.00和0000011245.00如何设置金额的格式,使其始终在小数点左侧具有可变金额大小的适当数量的零? 最佳答案 您应该在格式字符串中放入0。像这样。myValue.ToString("0000000000.00");这将始终为您提供小数点左侧的10位数字和右侧的两位数字。如果您不
我从一个XML文件中收到以下格式的小数:1.1320006.000000目前我正在像这样使用Decimal.Parse:decimalmyDecimal=Decimal.Parse(node.Element("myElementName").Value,System.Globalization.CultureInfo.InvariantCulture);如何将myDecimal打印成字符串看起来像下面?1.1326 最佳答案 我不认为有任何标准的数字格式字符串总是会忽略尾随的无意义的零,恐怕。您可以尝试编写自己的十进制规范化方法,但
我有一个返回数字的方法是这样的:publicdecimalGetNumber(){return250.00m;}例如,当这个值被打印到控制台时,它有一个逗号(250,00)而不是一个点(250.00)。我一直想在这里指出一点,我做错了什么? 最佳答案 decimal本身没有格式-它既没有逗号也没有点。当您将其转换为字符串时,您就会得到它。您可以通过指定不变区域性来确保获得一个点:usingSystem;usingSystem.Globalization;usingSystem.Threading;classTest{staticvo
这个问题在这里已经有了答案:Removetrailingzeros(23个回答)关闭8年前。我有一个十进制值,在.之后有可变位数,例如:0.00300.03100.00011.1200如何编写一个删除小数末尾0的动态函数?
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C#Whycanequaldecimalsproduceunequalhashvalues?我在我的.NET3.5应用程序(x86或x64,我都试过了)中遇到了一个问题,其中尾随零的数量不同的小数具有不同的哈希码。例如:decimalx=3575.000000000000000000M;decimaly=3575.0000000000000000000M;Console.WriteLine(x.GetHashCode());Console.WriteLine(y.GetHashCode());Console.
您好,我正在使用mvc示例从数据库中获取数据。这里我得到一个错误ExceptionDetails:System.InvalidOperationException:The'number'propertyon'Employee'couldnotbesettoa'System.Decimal'value.Youmustsetthispropertytoanon-nullvalueoftype'System.Double'.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Plea
当我尝试将decimal?转换为string时遇到问题。场景是decimaldecimalValue=.1211;stringvalue=(decimalValue*100).ToString();当前结果:值=12.1100预期结果:值=12.11请告诉我,这可能是什么原因。 最佳答案 Decimal保留Decimal中的任何尾随零数字。如果你想要两位小数:decimal?decimalValue=.1211m;stringvalue=((decimal)(decimalValue*100)).ToString("#.##")ht
我需要在这个标尺中将十进制转换为字符串:120.00-"120"120.01-"120.01"120.50-"120.50" 最佳答案 您可以使用decimal.ToString重写以指定格式。decimalamount=120.00m;stringstr=amount.ToString("0.00");这也可以在使用String.Format时使用。Console.WriteLine("{0:0.00}",amount);对于您的第一条规则,它不能在一行中完成。decimalamount=120.00m;stringstr=amo
我最近询问了System.Double,并被告知计算可能因平台/架构而异。不幸的是,我找不到任何信息来告诉我这是否适用于System.Decimal。对于任何特定的decimal计算,无论平台/架构如何,我都能保证完全得到相同的结果吗? 最佳答案 AmIguaranteedtogetexactlythesameresultforanyparticulardecimalcomputationindependentlyofplatform/architecture?C#4规范明确指出,您获得的值在任何平台上的计算都是相同的。正如Luke