我需要將一個double舍入到最接近的.5。我不要想結束以0結尾的數字。舍入到最接近的一半(不是最接近的整數)
我已經搜索了一下,但似乎每個人都想繞到最接近的多個的.5,而不是隻有最接近的一半,但不是全部。我試着除以0.5,四捨五入,再乘以0.5,但是這仍然是0.5的倍數。在此之後加上或減去.5並不總是圍繞它應該去的數字(當你應該減去時,你可能會增加)。
任何幫助將不勝感激。
我需要將一個double舍入到最接近的.5。我不要想結束以0結尾的數字。舍入到最接近的一半(不是最接近的整數)
我已經搜索了一下,但似乎每個人都想繞到最接近的多個的.5,而不是隻有最接近的一半,但不是全部。我試着除以0.5,四捨五入,再乘以0.5,但是這仍然是0.5的倍數。在此之後加上或減去.5並不總是圍繞它應該去的數字(當你應該減去時,你可能會增加)。
任何幫助將不勝感激。
我認爲, Math.round(num * 2)/2.0f
應解決舍入到最近的一半問題:
Math.round(3.9 * 2)/2.0f == 8/2.0f = 4.0
Math.round(3.6 * 2)/2.0f == 7/2.0f = 3.5
Math.round(3.1 * 2)/2.0f == 6/2.0f = 3.0
您使用哪種語言? –
啊,忘記寫了。 Java的。 – np98765
對於我的floor功能,比加0.5解決了你的問題。 – cerkiewny