ホテル管理システム
ogi
yesterday 1a1c8e71fcd14858f595029f089b2d4a00202b32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
namespace customTypes
{
    /// <summary>
    /// gRPC送信用decimal
    /// </summary>
    public partial class DecimalValue
    {
        private const decimal NanoFactor = 1_000_000_000;
        public DecimalValue(long units, int nanos)
        {
            Units = units;
            Nanos = nanos;
        }
 
        /// <summary>
        /// 暗然変換
        /// decimal = DecimalValue
        /// </summary>
        /// <param name="grpcDecimal"></param>
        public static implicit operator decimal(DecimalValue grpcDecimal)
        {
            return grpcDecimal.Units + grpcDecimal.Nanos / NanoFactor;
        }
 
        /// <summary>
        /// 暗然変換
        /// DecimalValue = decimal
        /// </summary>
        /// <param name="value"></param>
        public static implicit operator DecimalValue(decimal value)
        {
            var units = decimal.ToInt64(value);
            var nanos = decimal.ToInt32((value - units) * NanoFactor);
            return new DecimalValue(units, nanos);
        }
 
        /// <summary>
        /// 比較
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        public int CompareTo(DecimalValue val)
        {
            decimal self = this;
            decimal inVal = val;
            return self.CompareTo(inVal);
        }
 
        /// <summary>
        /// c#基本型の値を返す
        /// </summary>
        /// <returns></returns>
        public decimal ToDecimal()
        {
            decimal self = this;
            return self;
        }
 
        /// <summary>
        /// 文字列
        /// </summary>
        /// <returns></returns>
        public string ToText(string format = "")
        {
            decimal self = this;
            if (format.Length > 0) { return self.ToString(format); }
            return self.ToString();
        }
 
        /// <summary>
        /// SQL文の値セット
        /// </summary>
        /// <returns></returns>
        public string ToSqlValue()
        {
            decimal self = this;
            return self.ToString();
        }
    }
}