私のデータベースにmoneyフィールドを持つテーブルがあります。エンティティを作成し、そのmoneyフィールドの小数点以下のプロパティを作成しました。そのフィールドの値がMy MVC3ビューに表示されるとき、それは5489.0000のように小数点以下4桁の0000を持ちます。私は00か小数点以下2桁しか表示しません。どうすれば修正できますか?なぜ小数点4桁まで表示しているのですか?小数点/貨幣フィールドの小数点以下2桁
お勧めします。
私のデータベースにmoneyフィールドを持つテーブルがあります。エンティティを作成し、そのmoneyフィールドの小数点以下のプロパティを作成しました。そのフィールドの値がMy MVC3ビューに表示されるとき、それは5489.0000のように小数点以下4桁の0000を持ちます。私は00か小数点以下2桁しか表示しません。どうすれば修正できますか?なぜ小数点4桁まで表示しているのですか?小数点/貨幣フィールドの小数点以下2桁
お勧めします。
SQL Serverのmoney
データ型は、内部的に小数点以下4桁の暗黙的な縮尺の64ビット整数です。書籍オンラインを引用すると、正確には「通貨単位の1000千分の1」になります。それは、decimal(19,4)
のおおよその等価です。
2よりもスケールが4の理由は、演算結果の精度を維持するためです。通常の通貨の値は2のスケール(たとえば、$ 3.27)です。小数点以下2桁に2つの数値を掛けたり、除算したりすると、9.23を3.27で割った結果が2.82262996941896(およそ)になります。結果は、の精度(小数点以下の桁数)にすることができます。ただし、元の値は小数点以下2桁まで正確であるため、の精度は〜小数点以下4桁(2.8226)になります。この測定値は、指定された最小単位の1/2以内(+/- 0.005)に正確です。
しかし、私は逃げます。
値が暗黙スケール4を持つSQL Server money
の結果として、ADO.Netは、この値を4のスケールでSystem.Decimalに変換します。また、System.Decimalは、文字列の場合、小数点以下4桁が得られます。
Decimal.Round()
オーバーロードを使用して変換前
(3.27M).ToString("0.00") ;
。ホープ、このことができます
このプログラム:
namespace Sandbox
{
using System ;
class Program
{
static void Main(string[] args)
{
decimal pi = (decimal) Math.PI ;
string piText = pi.ToString("0.00");
Console.WriteLine("PI to 2 decimal places is {0} one way, and {1:0.00} another" , piText , pi) ;
return;
}
}
}
は、あなたが期待するもの生み出し:
PI to 2 decimal places is 3.14 one way, and 3.14 another
乾杯、
N.
ここでは、文字列の書式設定について知っておくべきすべてがあります。あなたは、文字列をフォーマットする必要が
。
static void Main()
{
decimal x = 0.999m;
decimal y = 9999999999999999999999999999m;
Console.WriteLine("My amount = {0:C}", x);
Console.WriteLine("Your amount = {0:C}", y);
}
}
OUTPUT: 出力
マイ量= $ 1.00
あなたの額= $ 9,999,999,999,999,999,999,999,999,999.00
一つのこと
{0:C}は通貨形式です
希望すると、これが役立ちます。
こんにちは@ニコ:私は金額を$を入れたくありません。 string.format( "{0:C}"、amount)はどのように変更できますか? – DotnetSparrow
あなたはdecimal dec = 5489.0000Mと言うことができます。 dec.ToString( "0.00"); – NicoTek
を私はこれを使用し、それが働いた:
YourDecField.ToString("N")
私は10進数を使用していますか?とToString( "0:00")を使用することはできません。 – DotnetSparrow
誰かが.Netランタイムにそれを伝えるべきです。私の元の回答の例を参照してください。 –
DevExpressコンポーネントでdoresを作成することはできません。 – f470071