如何将浮点值舍入到最接近的“n”倍数?
例如,将21.673舍入到最接近的8的倍数应该得到24。
并且,将21.673舍入到最接近的4的倍数应该得到20。
我需要JavaScript中的解决方案。
谢谢!
答案 0 :(得分:2)
很容易
Math.round(value / n) * n
答案 1 :(得分:0)
还有另一个,略短,略faster:
//DataModel
struct Post: Codable, Hashable,Identifiable {
let id: Int
let username: String
let body: String
}
class Service {
static let shared = Service()
enter code here
func fetchPosts(completion: @escaping ([Post]) -> ()) {
guard let url = URL(string: "http://localhost:1337/post") else {
fatalError("URL is not correct!")
}
URLSession.shared.dataTask(with: url) { data, _, _ in
let posts = try! JSONDecoder().decode([Post].self, from: data!)
DispatchQueue.main.async {
completion(posts)
}
}.resume()
}
}
struct Find: View {
@State var model = PostListViewModel()
var body: some View {
List {
ForEach(model.posts) { post in
Text(post.username)
}
}
}
}
似乎可以达到预期效果:
const nearrestMultipleOfN = (N,n) => n*(N/n+0.5|0);
const nearrestMultipleOfN = (N,n) => n*(N/n+0.5|0);
console.log(nearrestMultipleOfN(21.673,8));
console.log(nearrestMultipleOfN(21.673,4));
如果发现自己正在寻找不超过{strong>不超过 .as-console-wrapper{min-height:100%}
的最大整数(即返回6,可被3整除) ,当给出8)时,您可能会喜欢,
n