私は5つのスコア(後で増やすことができます)ごとに、各ユーザー(クリーンさときれいさ、サービス、場所、スタッフなど)ごとに製品をポーリングすることができます。各スコアには形容詞(1:最悪、2:悪い、3:良い、4:非常に良い、5:異常)があります。 清潔さと清楚:4(非常に良い) サービス:3(良い) 場所:1(最悪) スタッフ:5(異常な)ユーザがこのような製品の一つにポーリングすることができ、例えば小規模なポーリングメカニズムに最適なアルゴリズムは何ですか?
このスコアの平均は製品のスコアであり、小数点になります。この例では3.25です。
今、私はこの結果(3.25)によって製品に形容詞をつけたいと思っています。もしポイントが3.25のような半分の下にあるならば、これは下に丸めます(この3の場合)。 3.7のように半分、それは上に回る(4)
私はこれのための最良のアルゴリズムは何ですか?
私classs'デザインは以下のようなものです:
public class Product
{}
public Class Poll
{
public int Id {get; set;}
public int ProductId {get; set;}
public Product Product {get; set;}
public decimal Score {get; set}
public string Adjective {get; set;}
public ICollection<PollAttributes> Attributes {get; set;}
}
public class Attribute // for the attribute like Services
{
public int Id {get; set;}
public string Title {get; set;}
public ICollection<PollAttributes> Attributes {get; set;}
}
public Class PollAttributes
{
public decimal score {get; set;}
public int AttributeId {get; set;}
public Attribute{get; set;}
public int PollId {get; set;}
public Poll Poll {get; set;}
}
.NETの「奇妙な」デフォルトの丸め動作:銀行員の丸めにも留意してください。期待した答えが必ずしもあなたに与えられるとは限りません。だから私は非常に使用することをお勧めします: 'Math.round(score、MidpointRounding.AwayFromZero)' あなたが期待する丸めを与えるように。 – daf