首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如有必要,仅以小数形式显示基于语言的逗号分隔符

如有必要,仅以小数形式显示基于语言的逗号分隔符
EN

Stack Overflow用户
提问于 2016-01-20 20:37:58
回答 2查看 630关注 0票数 1

我有一个基于全球化的项目设置为葡萄牙语"pt-PT“,所以十进制数是用逗号",”分隔的。

如果可能的话,我不希望在属性的格式中设置逗号。

我现在拥有的代码(Model):

代码语言:javascript
复制
    [DisplayFormat(DataFormatString = "{0:#,##}", ApplyFormatInEditMode = true)]
    public decimal SizeOpenedWidth { get; set; }

视图:

代码语言:javascript
复制
    @Html.EditorFor(model => model.SizeOpenedWidth, new { htmlAttributes = new { @class = "form-control" } })

问题是这个解决方案在模型中硬编码了逗号",“,并且它表示为小数"11,01",值"11”。

EDIT1:

我找到了问题所在:

代码语言:javascript
复制
{0:#,##} -> {0:#.##}

我把",“换成了".”现在它起作用了,它假定全球化的葡萄牙语格式"11,01“。

有没有可能用这种类型的字符串格式来表示"11,1“有"11,10”?

EDIT2:

解决方案{0:#.##}创建问题",1“,表示",1”。

EN

回答 2

Stack Overflow用户

发布于 2016-01-20 20:41:55

您不需要也不应该在模型中硬编码该格式。我不确定为什么不在web.config中简单地使用下面这一行:

代码语言:javascript
复制
<globalization culture="pt-PT" uiCulture="pt-PT" />

如果问题是两位小数,那么这就是MVC中小数的默认编辑器的工作方式。一个简单的解决方案是使用TextBoxFor而不是EditorFor (因为您实际上不想使用十进制编辑器的功能)。

票数 1
EN

Stack Overflow用户

发布于 2016-01-20 20:48:58

如果您的区域性使用小数逗号,则数字格式将用点替换逗号。

来自https://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx

确定小数分隔符在结果字符串中的位置。

更多信息:".“自定义规范。

0.45678 ("0.00",简体中文) -> 0.46

0.45678 ("0.00",fr-FR) -> 0,46

因此,尽管“.”和',‘分别用于表示区域设置的小数分隔符和千位分隔符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34900311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档