Работает ли это как эквивалент Math.Truncate
в большинстве / всех случаях:
double x = 1034.45
var truncated = x - Math.Floor(Math.Abs(x));
где truncated == 0.45
?
Обновление ...
Спасибо за вклад людей! Это работает для меня:
[TestMethod]
public void ShouldTruncateNumber()
{
double x = -1034.068;
double truncated = ((x < 0) ? -1 : 1) * Math.Floor(Math.Abs(x));
Assert.AreEqual(Math.Truncate(x), truncated, "The expected truncated number is not here");
}
Это тоже:
[TestMethod]
public void ShouldGetMantissa()
{
double x = -1034.068;
double mantissaValue = ((x < 0) ? -1 : 1) *
(Math.Abs(x) - Math.Floor(Math.Abs(x)));
mantissaValue = Math.Round(mantissaValue, 2);
Assert.AreEqual(-0.07, mantissaValue, "The expected mantissa decimal is not here");
}