(5/15)*1185应该给395.
decimal Test = (5 / 15) * 1185;
Run Code Online (Sandbox Code Playgroud)
然而,这会返回0.我做错了什么?
dee*_*see 13
5 / 15是整数除法并返回0.使用5m / 15m强制decimal.
m是C#后缀,用于向编译器表明您编写的数字是a decimal,即使它看起来像是int.您可以使用f浮动和d双打(或5.0).
虽然对后缀的话题,也有L对long但不会帮助你与你的部门,因为它也是一个整数类型.
5 // Int32
5L // Int64
5d // Double
5.0 // Double
5m // Decimal
5f // Single
Run Code Online (Sandbox Code Playgroud)
你需要使用浮点除法,而不是整数除法.您可以通过将其设置为浮点数或在15后面使用m(将其指定为a decimal)来获得正确的结果:
decimal Test = (5 / 15.0) * 1185;
Run Code Online (Sandbox Code Playgroud)
要么
decimal Test = (5 / 15m) * 1185;
Run Code Online (Sandbox Code Playgroud)