n = int(input())for _ in range(n): # round()는 딱 반이면 짝수 쪽으로 간다(2.5 → 2, 3.5 → 4). 돌려주는 값도 int라 -0이 없다 print(round(float(input())))
JavaScriptmain.js · 13 行
const [n, ...xs] = require("fs").readFileSync(0, "utf8").trim().split(/\s+/).map(Number);// JS에는 짝수 쪽 반올림이 없다. Math.round는 딱 반이면 +∞ 쪽(2.5 → 3, -2.5 → -2)function roundHalfEven(x) { const f = Math.floor(x); const diff = x - f; // 소수 한 자리라 0.5는 정확히 0.5로 나온다 if (diff < 0.5) return f; if (diff > 0.5) return f + 1; return f % 2 === 0 ? f : f + 1;}// f + 0으로 -0을 0으로 (console.log(-0)은 "-0"을 찍는다)console.log(xs.map((x) => roundHalfEven(x) + 0).join("\n"));
TypeScriptmain.ts · 14 行
import { readFileSync } from "node:fs";const [n, ...xs]: number[] = readFileSync(0, "utf8").trim().split(/\s+/).map(Number);// TS에도 짝수 쪽 반올림이 없다. Math.round는 딱 반이면 +∞ 쪽(2.5 → 3, -2.5 → -2)function roundHalfEven(x: number): number { const f = Math.floor(x); const diff = x - f; // 소수 한 자리라 0.5는 정확히 0.5로 나온다 if (diff < 0.5) return f; if (diff > 0.5) return f + 1; return f % 2 === 0 ? f : f + 1;}// + 0으로 -0을 0으로 (console.log(-0)은 "-0"을 찍는다)console.log(xs.map((x) => roundHalfEven(x) + 0).join("\n"));
JavaMain.java · 17 行
import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine().trim()); StringBuilder out = new StringBuilder(); for (int i = 0; i < n; i++) { double x = Double.parseDouble(br.readLine().trim()); // Math.rint는 딱 반이면 짝수 쪽. Math.round는 floor(x + 0.5)라 2.5 → 3 // long으로 바꾸면 -0.0도 0이 된다 out.append((long) Math.rint(x)).append('\n'); } System.out.print(out); }}
C#Main.cs · 17 行
using System;using System.Globalization;class Program{ static void Main() { int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { double x = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); // Math.Round의 기본은 짝수 쪽(MidpointRounding.ToEven). // 돌려주는 값이 double이라 -0.4 → -0이 "-0"으로 찍히니 long으로 바꾼다 Console.WriteLine((long)Math.Round(x)); } }}
C++main.cpp · 15 行
#include <cmath>#include <iostream>int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; double x; std::cin >> n; for (int i = 0; i < n; i++) { std::cin >> x; // std::llrint는 기본 반올림 방식(딱 반이면 짝수 쪽). std::round는 0에서 먼 쪽 std::cout << std::llrint(x) << '\n'; }}
Cmain.c · 15 行
#include <math.h>#include <stdio.h>int main(void) { int n; double x; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%lf", &x); /* llrint는 지금 반올림 방식(기본: 딱 반이면 짝수 쪽)을 따른다. round()는 0에서 먼 쪽이라 2.5 → 3 */ printf("%lld\n", llrint(x)); } return 0;}
Craykonmain.cray · 21 行
// 수학.반올림은 딱 반이면 0에서 먼 쪽(2.5 → 3)이라 짝수 쪽 반올림은 직접 만든다짝수쪽반올림(x){ f = 数学.向下取整(x); 차 = x - f; 如果 (차 < 0.5) { 返回 f; } 如果 (차 > 0.5) { 返回 f + 1; } 返回 f % 2 == 0 ? f : f + 1;}n = 控制台.读行().转数字();循环 (i = 0; i < n; i++){ 控制台.输出(짝수쪽반올림(控制台.读行().转数字()) + 0);}