我試圖檢查double(time)> 1是否可以被另一個double(samplePeriod)> 0並且< 1整除1.以下代碼有效對於samplePeriods> 1,但不是< 1.任何想法?謝謝。檢查一個double> 1是否被double整除<1
/// <summary>
/// Check if a sample is within 1/10 of a samplePeriod from being on a samplePeriod
/// </summary>
/// <param name="time"> The time of the sample </param>
/// <param name="samplePeriod"> The period between samples </param>
/// <returns> True if the sample is on a sample period, false if not </returns>
public static bool SampleIsOnSamplePeriod(double time, double samplePeriod)
{
if (Math.Abs(time%samplePeriod - 0d) > (samplePeriod/10))
{
return false;
}
return true;
}
要清楚 - 你想知道除法結果'a'和'b'是否是_whole number_,對嗎? –
你怎麼定義「可分割」?雙打是C#中的浮點數,所以「完全可分」將是非常罕見的。 –
不完全。採樣週期可以是介於0和1之間的任何數字。應用程序是數據採集,我按照給定的頻率採集數據,我們會說10 Hz。 10 Hz採樣間隔爲0.1秒(1/freq)。所以,我想看看當前時間「時間」是否在0.1秒的增量上。允許的誤差是採樣週期的十分之一,因此時間可以在±0.01以內並被認爲是真實的。 +/- 0.01以外的值將是錯誤的。 – user2419860