C#中decimal.Parse(t70OnlinePrice.Value)保留两位小数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中decimal.Parse(t70OnlinePrice.Value)保留两位小数相关的知识,希望对你有一定的参考价值。
小弟才接触C# 不怎么会。请教
(decimal.Parse(t70OnlinePrice.Value)).ToString("F2");
报,无法将string 隐式转换为decimal
decimal.Parse(t70OnlinePrice.Value.ToString("F2"))
不大明白。能详细点么?或者您直接写个例子好吗
追答我错了,检查下string能转换不
为啥逗号在 int.Parse() 和 decimal.Parse() 中与 InvariantCulture 的行为不同?
【中文标题】为啥逗号在 int.Parse() 和 decimal.Parse() 中与 InvariantCulture 的行为不同?【英文标题】:Why do commas behave differently in int.Parse() and decimal.Parse() with InvariantCulture?为什么逗号在 int.Parse() 和 decimal.Parse() 中与 InvariantCulture 的行为不同? 【发布时间】:2012-01-08 20:02:21 【问题描述】:为什么会这样:
decimal.Parse("1,2,3,45", CultureInfo.InvariantCulture)
返回小数点 12345,然而:
int.Parse("1,2,3,45", CultureInfo.InvariantCulture)
抛出异常?我希望逗号在相同的文化中得到相同的对待。如果decimal.Parse
返回 12345,为什么int.Parse
不也返回 12345?
【问题讨论】:
【参考方案1】:See NumberStyles
int 的默认NumberStyles
是Integer
:
Integer 指示使用 AllowLeadingWhite、AllowTrailingWhite 和 AllowLeadingSign 样式。这是一种合数样式。
对比Number
(用于decimal
):
Number 表示使用 AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowTrailingSign、AllowDecimalPoint 和 AllowThousands 样式。这是一种合数样式。
如果您想要更多,请使用接受NumberStyles
的重载,并提供(例如)NumberStyles.Number
或NumberStyles.Any
:
int i = int.Parse("1,2,3,45", NumberStyles.Number, CultureInfo.InvariantCulture);
【讨论】:
有趣——我没有意识到他们使用了不同的风格。我可以理解其中的一些(例如 AllowDecimalPoint),但似乎奇怪的是 AllowThousands 在两者之间是不同的。谢谢!以上是关于C#中decimal.Parse(t70OnlinePrice.Value)保留两位小数的主要内容,如果未能解决你的问题,请参考以下文章
C#科学计数字符串,如“7.1e-003”转换为decimal类型数据
Decimal.Parse() 与 Convert.ToDecimal() [重复]
Decimal.Parse 和 Double.Parse System.FormatException 不同的行为
为啥逗号在 int.Parse() 和 decimal.Parse() 中与 InvariantCulture 的行为不同?