我正在使用十进制类型(.net),我想看看两个数字是否相等.但我只想精确到小数点后10位.例如,取这三个数字.我希望他们都平等.
0.1123456789
0.11234567891
0.11234567899
Run Code Online (Sandbox Code Playgroud)
10小数限制来自我的数据库,因此我必须假设第一个数字已经四舍五入,因此我不能简单地将其他数字舍入,因为最后一个数字将向上舍入.
我真的只想截断到10位小数,但也看不出怎么做.
Rus*_*ist 11
与比较浮点数的方法相同.这里有一些伪代码,因为我不知道.NET调用绝对值,但它实际上看起来像这样(修改常量以获得所需的精度):
if( Math.Abs( value1 - value2 ) < 0.0000000001 )
{
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
乘以10^10和丢弃小数部分怎么样?
decimal x2 = Math.Truncate(x * 10000000000);
decimal y2 = Math.Truncate(y * 10000000000);
Assert.Equals(x2, y2);
Run Code Online (Sandbox Code Playgroud)
编辑:改变为Math.Truncate亚伦的建议.谢谢.
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |