【问题标题】:c# record currency with commas and dotsc#用逗号和点记录货币
【发布时间】:2018-03-29 13:39:36
【问题描述】:

我正在尝试在 SQL Server 数据库中记录带有逗号和点的货币值。在本例中:数据库中的 80,55 保持如下:8055。

有谁知道我该如何解决这个问题?

在 c# 中我是这样做的:

public decimal ValorPlanoForm { get; set; }

然后这样:

ValorPlanoForm = message.ValorPlanoForm.ToString("G")

我正在像这样使用 ASP.NET:

<div class="col-xs-6 col-sm-6 col-md-2">
    <div class="form-group">
        <label asp-for="ValorPlanoForm">Valor do plano</label>
        <input asp-for="ValorPlanoForm" type="number" class="form-control">
        <span asp-validation-for="ValorPlanoForm"></span>
    </div>
</div>

谢谢。

【问题讨论】:

  • 您想以这种格式显示小数点吗?或者您希望您的 SQL Server 数据用逗号存储?因为在 SQL 中存储为带逗号/点的小数是不可能的
  • 您存储的是decimal,而不是string。小数不以特定格式存储。您可以以该格式显示它。
  • 对不起,我的坏人。我将其作为小数接收,但我将其存储为字符串,这就是我需要用逗号存储的原因。

标签: c# html asp.net sql-server


【解决方案1】:

你可以使用DataType

// Display currency symbol. For country specific currency, set 
// culture using globalization element in web.config. 
// For Great Britain Pound symbol
// <globalization culture="en-gb"/>
[DataType(DataType.Currency)]
public int? Salary { get; set; }

youtube

中查看此视频教程

【讨论】:

  • 将货币存储为int 是否明智?
  • @maccettura 这只是一个例子。重要的部分是DataType 来改变显示。
  • 为什么要将其保存为字符串?无论如何检查这个答案stackoverflow.com/questions/105770/…
【解决方案2】:

如果我是你,我会在 SQL Server 中使用 Money 数据类型存储货币数据,当你想用逗号和点显示数据时,你可以在前端应用程序中对其进行格式化,或者使用SELECT 查询中的 CONVERT() 函数。

但要回答您提出的问题,如果您真的想用逗号和点存储实际数据,则需要将其存储为 varchar 数据类型。

【讨论】:

  • 事实上,我将其作为小数接收,但我将其存储为字符串。但即便如此,它的存储也没有逗号。
  • 那么,在从你的应用程序存储数据的操作过程中,你需要用你想要的点和逗号来格式化变量的值。
  • money 数据类型是个坏主意(所以我读过):stackoverflow.com/questions/582797/…
  • 我发现money 类型在某些情况下很有用,但最好了解这些限制。
猜你喜欢
  • 2019-07-11
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多